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 » What is the MQ Client using for QM Name on MQCONN(X)

Post new topic  Reply to topic
 What is the MQ Client using for QM Name on MQCONN(X) « View previous topic :: View next topic » 
Author Message
PeterPotkay
PostPosted: Mon Mar 28, 2016 4:30 am    Post subject: What is the MQ Client using for QM Name on MQCONN(X) Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7716

Is there a way to tell from the MQ Queue Manager what value an MQ Client is using for the QMgrName parameter on the MQCONN(X) call?

I did try a strmqtrc on the MQ Server and used amqscnxc my desktop as the test MQ Client app, but the server side trace did not show what value was being passed by the MQ Client. Maybe I did not use the correct trace options.

I want to be able to independently verify from the QM side what the Clients are doing when it comes to the QMgrName on their MQCONN(X) calls.


I started trace on the MQ server like this:
strmqtrc -m MyQMName -t api

Then on my desktop I opened a command prompt and SET MQSERVER so the command window knew to go to my server over a MQ Client Channel that existed.

I did the following 3 tests. That first one I purposly used the zzzzzz as an eye catcher for the trace.
Code:
X:\>amqscnxc MyQMNamezzzzz
Sample AMQSCNXC start
Connecting to queue manager MyQMNamezzzzz
with no client connection information specified.
MQCONNX ended with reason code 2058

X:\>amqscnxc MyQMName
Sample AMQSCNXC start
Connecting to queue manager MyQMName
with no client connection information specified.
Connection established to queue manager MyQMName

Sample AMQSCNXC end

X:\>amqscnxc
Sample AMQSCNXC start
Connecting to the default queue manager
with no client connection information specified.
Connection established to queue manager MyQMName

Sample AMQSCNXC end



When I looked in the MQ Trace file, I found the 3 MQCONN calls (this is a test QM with no other activity), but all 3 MQCONN calls in the trace look the same to me (other than time stamps and hConns). I can't tell from the trace the 3 different values I used as input for amqscnxc. I looked in the trace file for the pid for amqrmppa.

Code:

08:15:59.201892    22394.6384   RSESS:000ce1      __________
 08:15:59.201895    22394.6384   RSESS:000ce1      MQCONN >>
 08:15:59.201897    22394.6384   RSESS:000ce1      Name:
 08:15:59.201898    22394.6384   RSESS:000ce1        0x0000:  48494743 4e583231 20202020 20202020  |MyQMName        |
 08:15:59.201898    22394.6384   RSESS:000ce1        0x0010:  20202020 20202020 20202020 20202020  |                |
 08:15:59.201898    22394.6384   RSESS:000ce1        0x0020:  20202020 20202020 20202020 20202020  |                |
 08:15:59.201900    22394.6384   RSESS:000ce1      ConnectOpts:
 08:15:59.201901    22394.6384   RSESS:000ce1        0x0000:  434e4f20 01000000 00010000           |CNO ........    |
 08:15:59.201902    22394.6384   RSESS:000ce1      Hconn         : Output Parm
 08:15:59.201904    22394.6384   RSESS:000ce1      Compcode      : Output Parm
 08:15:59.201905    22394.6384   RSESS:000ce1      Reason        : Output Parm
 08:15:59.202986    22394.6384    CONN:140199c      __________
 08:15:59.202993    22394.6384    CONN:140199c      MQCONN <<
 08:15:59.202994    22394.6384    CONN:140199c      Name          : Input  Parm
 08:15:59.202996    22394.6384    CONN:140199c      Hconn:
 08:15:59.202997    22394.6384    CONN:140199c        0x0000:  9c194001                             |..@.            |
 08:15:59.202999    22394.6384    CONN:140199c      ConnectOpts:
 08:15:59.203000    22394.6384    CONN:140199c        0x0000:  434e4f20 01000000 00010000           |CNO ........    |
 08:15:59.203001    22394.6384    CONN:140199c      Compcode:
 08:15:59.203002    22394.6384    CONN:140199c        0x0000:  00000000                             |....            |
 08:15:59.203004    22394.6384    CONN:140199c      Reason:
 08:15:59.203005    22394.6384    CONN:140199c        0x0000:  00000000                             |....            |
 08:15:59.203008    22394.6384    CONN:140199c      MQI:MQCONN HConn=0140199C rc=00000000





 08:16:01.764266    22394.6385   RSESS:000ce2      __________
 08:16:01.764268    22394.6385   RSESS:000ce2      MQCONN >>
 08:16:01.764270    22394.6385   RSESS:000ce2      Name:
 08:16:01.764272    22394.6385   RSESS:000ce2        0x0000:  48494743 4e583231 20202020 20202020  |MyQMName        |
 08:16:01.764272    22394.6385   RSESS:000ce2        0x0010:  20202020 20202020 20202020 20202020  |                |
 08:16:01.764272    22394.6385   RSESS:000ce2        0x0020:  20202020 20202020 20202020 20202020  |                |
 08:16:01.764273    22394.6385   RSESS:000ce2      ConnectOpts:
 08:16:01.764275    22394.6385   RSESS:000ce2        0x0000:  434e4f20 01000000 00010000           |CNO ........    |
 08:16:01.764276    22394.6385   RSESS:000ce2      Hconn         : Output Parm
 08:16:01.764278    22394.6385   RSESS:000ce2      Compcode      : Output Parm
 08:16:01.764279    22394.6385   RSESS:000ce2      Reason        : Output Parm
 08:16:01.764747    22394.6385    CONN:140199e      __________
 08:16:01.764753    22394.6385    CONN:140199e      MQCONN <<
 08:16:01.764754    22394.6385    CONN:140199e      Name          : Input  Parm
 08:16:01.764756    22394.6385    CONN:140199e      Hconn:
 08:16:01.764757    22394.6385    CONN:140199e        0x0000:  9e194001                             |..@.            |
 08:16:01.764759    22394.6385    CONN:140199e      ConnectOpts:
 08:16:01.764760    22394.6385    CONN:140199e        0x0000:  434e4f20 01000000 00010000           |CNO ........    |
 08:16:01.764761    22394.6385    CONN:140199e      Compcode:
 08:16:01.764763    22394.6385    CONN:140199e        0x0000:  00000000                             |....            |
 08:16:01.764764    22394.6385    CONN:140199e      Reason:
 08:16:01.764765    22394.6385    CONN:140199e        0x0000:  00000000                             |....            |
 08:16:01.764769    22394.6385    CONN:140199e      MQI:MQCONN HConn=0140199E rc=00000000




 08:16:03.665368    22394.6386   RSESS:000ce3      __________
 08:16:03.665373    22394.6386   RSESS:000ce3      MQCONN >>
 08:16:03.665375    22394.6386   RSESS:000ce3      Name:
 08:16:03.665376    22394.6386   RSESS:000ce3        0x0000:  48494743 4e583231 20202020 20202020  |MyQMName        |
 08:16:03.665376    22394.6386   RSESS:000ce3        0x0010:  20202020 20202020 20202020 20202020  |                |
 08:16:03.665376    22394.6386   RSESS:000ce3        0x0020:  20202020 20202020 20202020 20202020  |                |
 08:16:03.665378    22394.6386   RSESS:000ce3      ConnectOpts:
 08:16:03.665379    22394.6386   RSESS:000ce3        0x0000:  434e4f20 01000000 00010000           |CNO ........    |
 08:16:03.665381    22394.6386   RSESS:000ce3      Hconn         : Output Parm
 08:16:03.665382    22394.6386   RSESS:000ce3      Compcode      : Output Parm
 08:16:03.665384    22394.6386   RSESS:000ce3      Reason        : Output Parm
 08:16:03.665826    22394.6386    CONN:14019a0      __________
 08:16:03.665831    22394.6386    CONN:14019a0      MQCONN <<
 08:16:03.665833    22394.6386    CONN:14019a0      Name          : Input  Parm
 08:16:03.665834    22394.6386    CONN:14019a0      Hconn:
 08:16:03.665836    22394.6386    CONN:14019a0        0x0000:  a0194001                             |..@.            |
 08:16:03.665837    22394.6386    CONN:14019a0      ConnectOpts:
 08:16:03.665838    22394.6386    CONN:14019a0        0x0000:  434e4f20 01000000 00010000           |CNO ........    |
 08:16:03.665840    22394.6386    CONN:14019a0      Compcode:
 08:16:03.665841    22394.6386    CONN:14019a0        0x0000:  00000000                             |....            |
 08:16:03.665842    22394.6386    CONN:14019a0      Reason:
 08:16:03.665843    22394.6386    CONN:14019a0        0x0000:  00000000                             |....            |
 08:16:03.665847    22394.6386    CONN:14019a0      MQI:MQCONN HConn=014019A0 rc=00000000
 08:16:03.665856    22394.6386    CONN:14019a0      __________



Did I trace wrong? Or is this info not available. Has to be, how else would the QM know the value was wrong to be able to throw the MQRC 2058.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
PaulClarke
PostPosted: Mon Mar 28, 2016 5:03 am    Post subject: Reply with quote

Grand Master

Joined: 17 Nov 2005
Posts: 1002
Location: New Zealand

That is very odd and I can't explain it. I would certainly expect the API tracing to show what the Application passed in. However, I tried my own test using AMQPUTC. By entering command AMQSPUTC Q1 Rubbish I got the trace....
Code:

675 01:51:13.231724  78804.1           :       ---}  zswGetEntryPointsByName (rc=OK)
676 01:51:13.231738  78804.1           :       !! - Calling MQCONNX_Call
677 01:51:13.231761  78804.1           :       ---{  MQCONNX
678 01:51:13.231784  78804.1           :       ----{  trmzstMQCONNX
679 01:51:13.231805  78804.1           :       MQCONNX 'Rubbish'
67A 01:51:13.231830  78804.1           :       -----{  MCSGetDefaultThreadModel
67B 01:51:13.231844  78804.1           :       ------{  xcsGetEnvironmentString
67C 01:51:13.231871  78804.1           :       xcsGetEnvironmentString[TMQ_DEFAULT_MODEL] = NULL

No API tracing but it clearly shows the QM that was passed in.

Cheers,

Paul.
_________________
Paul Clarke
MQGem Software
www.mqgem.com
Back to top
View user's profile Send private message Visit poster's website
PeterPotkay
PostPosted: Mon Mar 28, 2016 5:10 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7716

Paul,
What trace options did you use? I was hoping to avoid -t all -t detail because in my real use case I will be dealing with an MQ server with hundreds of clients, so I am trying to target my trace as much as possible.

For your example, which trace file did you find that in? The one for amqrmppa, or some other MQ process?
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
PaulClarke
PostPosted: Mon Mar 28, 2016 5:31 am    Post subject: Reply with quote

Grand Master

Joined: 17 Nov 2005
Posts: 1002
Location: New Zealand

Oh I see. I'm sorry, I clearly misunderstood your question (my excuse is that it is early here) You want to know how to tell from a trace on the server what QM name was provided by the client. My trace file was from the client application itself.

Well at least that makes a lot more sense why you got the trace you did

When a client connects to a server and an AMQRMPPA thread is started the thread connects to the Queue Manager a long time before the the server actually knows anything about the application. So, looking at the MQCONNX call is certainly not going to tell you anything. The thread has to connect to the Queue Manager before it even reads the channel definition. Then it has to call exits, do protocol exchanges, data conversion etc etc before it then receives the application context.

I've just tried it again and you are right - it doesn't appear as though those values are traced out which is surprising.

Cheers,

Paul.
_________________
Paul Clarke
MQGem Software
www.mqgem.com
Back to top
View user's profile Send private message Visit poster's website
tczielke
PostPosted: Mon Mar 28, 2016 10:51 am    Post subject: Reply with quote

Guardian

Joined: 08 Jul 2010
Posts: 940
Location: Illinois, USA

The application activity trace when TraceLevel=HIGH does record the MQCD for SVRCONN channels. There is a QmgrName piece that is included in that MQCD, and might be what you are looking for. The MQCD has a lot of data, but below shows the offsets of the MQCD when the queue manager is 64 bit. In the below example, the QmgrName is at offset x'60'.

Code:

MQCD Structure:
  00000000:  434C 4945 4E54 2E54 4F2E 5345 5256 4552  'CLIENT.TO.SERVER'
      ChannelName (+0 for 20) = 'CLIENT.TO.SERVER    '
  00000010:  2020 2020 0000 0000 0700 0000 0200 0000  '    ............'
      Version (+14 for 4) = 0
      ChannelType (+18 for 4) = 7 (MQCHT_SVRCONN)
      TransportType (+1C for 4) = 2 (MQXPT_TCP)
  00000020:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
      Desc (+20 for 64)
  00000030:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000040:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000050:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000060:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
      QMgrName (+60 for 48)
  00000070:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000080:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000090:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
      XmitQName (+90 for 48)
  000000A0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000000B0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000000C0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      ShortConnectionName (+C0 for 20)
  000000D0:  0000 0000 2020 2020 2020 2020 2020 2020  '....            '
      MCAName (+D4 for 20)
  000000E0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
      ModeName (+E8 for 8)
  000000F0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
      TpName (+F0 for 64)
  00000100:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000110:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000120:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000130:  3200 0000 0000 0000 0A00 0000 3C00 0000  '2...........<...'
      BatchSize (+130 for 4) = 50 = x'32'
      DiscInterval (+134 for 4) = 0
      ShortRetryCount (+138 for 4) = 10 = x'A'
      ShortRetryInterval (+13C for 4) = 60 = x'3C'
  00000140:  FFC9 9A3B B004 0000 2020 2020 2020 2020  '...;....        '
      LongRetryCount (+140 for 4) = 999,999,999 = x'3B9AC9FF'
      LongRetryInterval (+144 for 4) = 1,200 = x'4B0'
      SecurityExit (+148 for 128)
  00000150:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000160:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000170:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000180:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000190:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000001A0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000001B0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000001C0:  2020 2020 2020 2020 0000 0000 0000 0000  '        ........'
      MsgExit (+1C8 for 128)
  000001D0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000001E0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000001F0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000200:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000210:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000220:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000230:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000240:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      SendExit (+248 for 128)
  00000250:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000260:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000270:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000280:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000290:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000002A0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000002B0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000002C0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      ReceiveExit (+2C8 for 128)
  000002D0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000002E0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000002F0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000300:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000310:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000320:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000330:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000340:  0000 0000 0000 0000 FFC9 9A3B A086 0100  '...........;....'
      SeqNumberWrap (+348 for 4) = 999,999,999 = x'3B9AC9FF'
      MaxMsgLgth (+34C for 4) = 100,000 = x'186A0'
  00000350:  0100 0000 0000 0000 2020 2020 2020 2020  '........        '
      PutAuthority (+350 for 4) = 1
      DataConversion (+354 for 4) = 0
      SecurityUserData (+358 for 32)
  00000360:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000370:  2020 2020 2020 2020 0000 0000 0000 0000  '        ........'
      MsgUserData (+378 for 32)
  00000380:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000390:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      SendUserData (+398 for 32)
  000003A0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000003B0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      ReceiveUserData (+3B8 for 32)
  000003C0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000003D0:  0000 0000 0000 0000 2020 2020 2020 2020  '........        '
      UserIdentifier (+3D8 for 12)
  000003E0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
      Password (+3E4 for 12)
  000003F0:  0000 0000 0000 0000 0000 0000 0100 0000  '................'
      MCAUserIdentifier (+3F0 for 12)
      MCAType (+3FC for 4) = 1
  00000400:  3132 372E 302E 302E 3100 0000 0000 0000  '127.0.0.1.......'
      ConnectionName (+400 for 264)
  00000410:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000420:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000430:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000440:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000450:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000460:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000470:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000480:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000490:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000004A0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000004B0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000004C0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000004D0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000004E0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  000004F0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000500:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      RemoteUserIdentifier (+508 for 12)
  00000510:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      RemotePassword (+514 for 12)
  00000520:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
      MsgRetryExit (+520 for 128)
  00000530:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000540:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000550:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000560:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000570:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000580:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000590:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
      MsgRetryUserData (+590 for 32)
  000005A0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000005B0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000005C0:  0A00 0000 E803 0000 2C01 0000 0000 0000  '........,.......'
      MsgRetryCount (+5C0 for 4) = 10 = x'A'
      MsgRetryInterval (+5C4 for 4) = 1,000 = x'3E8'
      HeartBeatInterval (+5C8 for 4) = 300 = x'12C'
      BatchInterval (+5CC for 4) = 0
  000005D0:  0200 0000 0000 0000 0000 0000 0000 0000  '................'
      NonPersistentMsgSpeed (+5D0 for 4) = 2
      SrucLentgh (+5D4 for 4)
      ExitNameLength (+5D8 for 4)
      ExitDataLength (+5DC for 4)
  000005E0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      MsgExitsDefined (+5E0 for 4)
      SendExitsDefined (+5E4 for 4)
      ReceiveExistDefined (+5E8 for 4)
      !+5EC has structure padding of 4 bytes to align next 8 byte pointer!
  000005F0:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      MsgExitPtr (+5F0 for 8)
      MsgUserDataPtr (+5F8 for 8)
  00000600:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      SendExitPtr (+600 for 8)
      SendUserDataPtr (+608 for 8)
  00000610:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      ReceiveExitPtr (+610 for 8)
      ReceiveUserDataPtr (+618 for 8)
  00000620:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      ClusterPtr (+620 for 8)
      ClustersDefined (+628 for 4)
      NetworkPriority (+62C for 4)
  00000630:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      LongMCAUserIdLength (+630 for 4)
      LongRemoteUserIdLength (+634 for 4)
      LongMCAUserIdPtr (+638 for 8)
      LongRemoteUserIdPtr (+63C for 8)
  00000640:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
      LongRemoteUserIdPtr (+640 for 8)
      MCASecurityId (+648 for 40)
  00000650:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000660:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000670:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
     RemoteSecurityId (+670 for 40)
  00000680:  0000 0000 0000 0000 0000 0000 0000 0000  '................'
  00000690:  0000 0000 0000 0000 2020 2020 2020 2020  '........        '
      SSLCipherSpec (+698 for 32)
  000006A0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000006B0:  2020 2020 2020 2020 0000 0000 0000 0000  '        ........'
      SSLPeerNamePtr (+6B8 for 8)
  000006C0:  3400 0000 0000 0000 FFFF FFFF 2020 2020  '4...........    '
      SSLPeerNameLength (+6C0 for 4) = 52 = x'34'
      SSLClientAuth (+6C4 for 4) = 0
      KeepAliveInterval (+6C8 for 4) = -1 = x'FFFFFFFF'
      LocalAddress (+6CC for 48)
  000006D0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000006E0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000006F0:  2020 2020 2020 2020 2020 2020 0000 0000  '            ....'
      BatchHeartbeat (+6FC for 4) = 0
  00000700:  0000 0000 FFFF FFFF 0000 0000 FFFF FFFF  '................'
      HdrCompList [2] (+700 for 8) 
      MsgCompList [16] +708 for 64) 
  00000710:  FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF  '................'
  00000720:  FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF  '................'
  00000730:  FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF  '................'
  00000740:  FFFF FFFF FFFF FFFF 0000 0000 0000 0000  '................'
      CLWLChannelRank (+748 for 4) = 0
      CLWLChannelPriority (+74C for 4) = 0
  00000750:  3200 0000 FDFF FFFF FDFF FFFF 0A00 0000  '2...............'
      CLWLChannelWeight (+750 for 4) = 50
      ChannelMonitoring (+754 for 4) = -3
      ChannelStatistics (+758 for 4) = -3
      SharingConversations (+75C for 4) = 10
  00000760:  0000 0000 FFC9 9A3B FFC9 9A3B 0000 0000  '.......;...;....'
      PropertyControl (+760 for 4) = 0
      MaxInstances (+764 for 4) = -1 = 999,999,999
      MaxInstacnesPerClient (+768 for 4) = 999,999,999
      ClientChannelWeight (+76C for 4) = 0
  00000770:  0100 0000 8813 0000 0200 0000 0000 0000  '................'
      ConnectionAffinity (+770 for 4) = 1
      BatchDataLimit (+774 for 4) = 5000
      UseDLQ (+778 for 4) = 2
      DefReconnect (+77C for 4) = 0
  00000780:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
      CertificateLabel (+780 for 64)
  00000790:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000007A0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  000007B0:  2020 2020 2020 2020 2020 2020 2020 2020  '                '

_________________
Working with MQ since 2010.
Back to top
View user's profile Send private message
hughson
PostPosted: Tue Mar 29, 2016 12:17 am    Post subject: Reply with quote

Padawan

Joined: 09 May 2013
Posts: 1921
Location: Bay of Plenty, New Zealand

tczielke wrote:
The application activity trace when TraceLevel=HIGH does record the MQCD for SVRCONN channels. There is a QmgrName piece that is included in that MQCD, and might be what you are looking for. The MQCD has a lot of data, but below shows the offsets of the MQCD when the queue manager is 64 bit. In the below example, the QmgrName is at offset x'60'.

Code:

MQCD Structure:
  00000000:  434C 4945 4E54 2E54 4F2E 5345 5256 4552  'CLIENT.TO.SERVER'
      ChannelName (+0 for 20) = 'CLIENT.TO.SERVER    '
  00000010:  2020 2020 0000 0000 0700 0000 0200 0000  '    ............'
:
      QMgrName (+60 for 48)
  00000070:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000080:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000090:  2020 2020 2020 2020 2020 2020 2020 2020  '                '


I don't expect that to help I'm afraid. The MQCD is the same size/shape regardless of channel type, and so it has the QMgrName field in it because a CLNTCONN channel definition needs one. It is unused for other types, e.g. the SVRCONN in this case. Regardless, the definition of the SVRCONN channel does not have a bearing on the QMgrName passed in by the client application.

The only other way I can think of catching it is to trace the communication flows and pick it out of the FAP flows - I'm surprised you didn't see your 'zzzzzzzzzzzzzzzzzzzz' in those trace buffers?

Cheers
Morag
_________________
Morag Hughson @MoragHughson
IBM MQ Technical Education Specialist
Get your IBM MQ training here!
MQGem Software
Back to top
View user's profile Send private message Visit poster's website
PeterPotkay
PostPosted: Tue Mar 29, 2016 7:05 am    Post subject: Reply with quote

Poobah

Joined: 15 May 2001
Posts: 7716

Morag,
Doing a strmqtrc -t all -t detail did get the QM name being used by the client in the MQCONN(x) to show up in the trace file. It was in the trace file for the amqrmppa process. But I went from famine to feast, from no occurrences when I was using -t api, to dozens and dozens of occurrences of the QM name, making it difficult to zero in on the value used by the MQCONN. Its easy when the wrong QM name is used, because I can do the search for the wrong name, in my case "zzzzz". I'm afraid this won't be workable on a very busy queue manager where I'm trying to find who is not using blank but instead is using the real name. That real name shows up EVERYWHERE when -t all -t detail is used.
_________________
Peter Potkay
Keep Calm and MQ On
Back to top
View user's profile Send private message
tczielke
PostPosted: Wed Mar 30, 2016 5:53 am    Post subject: Reply with quote

Guardian

Joined: 08 Jul 2010
Posts: 940
Location: Illinois, USA

hughson wrote:
tczielke wrote:
The application activity trace when TraceLevel=HIGH does record the MQCD for SVRCONN channels. There is a QmgrName piece that is included in that MQCD, and might be what you are looking for. The MQCD has a lot of data, but below shows the offsets of the MQCD when the queue manager is 64 bit. In the below example, the QmgrName is at offset x'60'.

Code:

MQCD Structure:
  00000000:  434C 4945 4E54 2E54 4F2E 5345 5256 4552  'CLIENT.TO.SERVER'
      ChannelName (+0 for 20) = 'CLIENT.TO.SERVER    '
  00000010:  2020 2020 0000 0000 0700 0000 0200 0000  '    ............'
:
      QMgrName (+60 for 48)
  00000070:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000080:  2020 2020 2020 2020 2020 2020 2020 2020  '                '
  00000090:  2020 2020 2020 2020 2020 2020 2020 2020  '                '


I don't expect that to help I'm afraid. The MQCD is the same size/shape regardless of channel type, and so it has the QMgrName field in it because a CLNTCONN channel definition needs one. It is unused for other types, e.g. the SVRCONN in this case. Regardless, the definition of the SVRCONN channel does not have a bearing on the QMgrName passed in by the client application.

The only other way I can think of catching it is to trace the communication flows and pick it out of the FAP flows - I'm surprised you didn't see your 'zzzzzzzzzzzzzzzzzzzz' in those trace buffers?

Cheers
Morag


Yes, I was definitely off there. For some reason, I had it in my head that the MQCD that gets printed there for the Activity Trace was some kind of negotiation between the CLNTCONN and SVRCONN channel sides. But doing some testing this morning, that definitely just looks like the values from the SVRCONN channel side.
_________________
Working with MQ since 2010.
Back to top
View user's profile Send private message
gbaddeley
PostPosted: Wed Mar 30, 2016 3:13 pm    Post subject: Reply with quote

Jedi Knight

Joined: 25 Mar 2003
Posts: 2505
Location: Melbourne, Australia

tczielke wrote:
...For some reason, I had it in my head that the MQCD that gets printed there for the Activity Trace was some kind of negotiation between the CLNTCONN and SVRCONN channel sides. But doing some testing this morning, that definitely just looks like the values from the SVRCONN channel side.

As I understand it from my work on SupportPac MA0Z, the message channel agents at each end of the client connection take a memory copy of the local MQCD defined for the channel. They use the copy to help manage the connection. The agents will fill in various bits of information. Channel exits can modify many attributes in the MQCD copies, and they will only apply to the running instance of the channel.
I should be able to verify if the original qmgr name specified in MQCONN / MQCONNX on the client side (eg. contains wildcards) is flowed to the svrconn side.
_________________
Glenn
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » General IBM MQ Support » What is the MQ Client using for QM Name on MQCONN(X)
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.