ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » General IBM MQ Support » Inquire head scratcher

Post new topic  Reply to topic
 Inquire head scratcher « View previous topic :: View next topic » 
Author Message
RogerLacroix
PostPosted: Wed Mar 03, 2010 11:09 am    Post subject: Inquire head scratcher Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3264
Location: London, ON Canada

All,

I've created an API Exit to do some testing. I'm running it on WMQ v6.0.2.7 on WinXP.

I'm scratching my head over data being passed on the API Exit's Inquire interface. Note: I've registered both the MQXR_BEFORE and MQXR_AFTER for the MQXF_INQ (Inquire Interface).

Every 20 seconds, the command server issues an MQ Inquire command. The data the API Exit Inquire interface is receiving is:
SelectorCount=1
Selectors=13
IntAttrCount=1
IntAttrs=9000
CharAttrLength=0
CharAttrs=

At first, I thought the data was weird but from a discussion with Neil Casey, it appears to be correct. 13 is MQIA_MAX_MSG_LENGTH and 9000 is the maxmsgl of SYSTEM.ADMIN.COMMAND.QUEUE.

Can anyone (IBM included) explain why the command server is issuing an Inquire call every 20 seconds?

i.e. Here's the logfile of the API Exit:
Code:
18:14:50.250, ConnxBefore, ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=2090030248, QMgrName=MQWT2, ConnName=, UserId=rlacroix, CNO_Version=5, CNO_Options=MQCNO_SHARED_BINDING, CNO_ConnId=, PgmName=ebSphere MQ\bin\amqpcsea.exe, PgmType=MQXACT_EXTERNAL, Environment=MQXE_COMMAND_SERVER

18:14:50.265, ConnxAfter , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, QMgrName=MQWT2, ConnName=, UserId=rlacroix, CNO_Version=5, CNO_Options=MQCNO_SHARED_BINDING, CNO_ConnId=414D51434D5157543220202020202020EA9B8D4B20000601, PgmName=ebSphere MQ\bin\amqpcsea.exe, PgmType=MQXACT_EXTERNAL, Environment=MQXE_COMMAND_SERVER

18:14:50.265, OpenBefore , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=1323464, ObjectQMgrName=, ObjectName=SYSTEM.ADMIN.COMMAND.QUEUE, ObjectType=MQOT_Q, Options=MQOO_INPUT_EXCLUSIVE+MQOO_INQUIRE+MQOO_BIND_AS_Q_DEF+MQOO_SAVE_ALL_CONTEXT, DynamicQName=AMQ.*, AlternateUserId=, AlternateSecurityId=, ResolvedQMgrName=, ResolvedQName=

18:14:50.265, OpenAfter  , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, ObjectQMgrName=, ObjectName=SYSTEM.ADMIN.COMMAND.QUEUE, ObjectType=MQOT_Q, Options=MQOO_INPUT_EXCLUSIVE+MQOO_INQUIRE+MQOO_BIND_AS_Q_DEF+MQOO_SAVE_ALL_CONTEXT, DynamicQName=AMQ.*, AlternateUserId=, AlternateSecurityId=, ResolvedQMgrName=MQWT2, ResolvedQName=SYSTEM.ADMIN.COMMAND.QUEUE

18:14:50.265, InqBefore  , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=1310720, CharAttrLength=0, CharAttrs=

18:14:50.265, InqAfter   , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=9000, CharAttrLength=0, CharAttrs=

18:14:50.265, InqBefore  , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=9000, CharAttrLength=0, CharAttrs=

18:14:50.265, InqAfter   , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=9000, CharAttrLength=0, CharAttrs=

18:15:10.265, InqBefore  , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=9000, CharAttrLength=0, CharAttrs=

18:15:10.265, InqAfter   , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=9000, CharAttrLength=0, CharAttrs=

18:15:30.265, InqBefore  , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=9000, CharAttrLength=0, CharAttrs=

18:15:30.265, InqAfter   , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=9000, CharAttrLength=0, CharAttrs=

18:15:50.265, InqBefore  , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=9000, CharAttrLength=0, CharAttrs=

18:15:50.265, InqAfter   , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=9000, CharAttrLength=0, CharAttrs=

18:16:10.265, InqBefore  , ProcessId=05224, ThreadId=1, CC=0, RC=0, HConn=8807024, HObj=25536856, SelectorCount=1, Selectors=13, IntAttrCount=1, IntAttrs=9000, CharAttrLength=0, CharAttrs=

The log repeats the Inquire every 20 seconds until I stop the queue manager.

Does anyone, including IBM, want to explain what I am seeing?

Regards,
Roger Lacroix
Capitalware Inc.
_________________
Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter
Back to top
View user's profile Send private message Visit poster's website
fjb_saper
PostPosted: Sun Mar 28, 2010 5:34 am    Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20756
Location: LI,NY

Roger,

Could it be that the command server is polling its queue every 20 seconds to check if there is work to be done? Let's say a loop with MQGET wait(20 seconds)?

What happens if you stop the command server but leave the qmgr running?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
RogerLacroix
PostPosted: Thu Apr 01, 2010 3:00 pm    Post subject: Reply with quote

Jedi Knight

Joined: 15 May 2001
Posts: 3264
Location: London, ON Canada

Hi,

The response from someone at IBM was:
Quote:
I've had a look at the code, and basically it looks to be trying to ensure that:
(a) its message buffer is likely to be big enough for the command messages on the queue; and
(b) if it can't allocate enough storage it can tell you about it reasonably close to the point in time at which you changed MAXMSGLEN.

I presume it's written that way because there was much less memory in the average computer in 1992.


Regards,
Roger Lacroix
_________________
Capitalware: Transforming tomorrow into today.
Connected to MQ!
Twitter
Back to top
View user's profile Send private message Visit poster's website
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » Inquire head scratcher
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.