|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
What is the MQ Client using for QM Name on MQCONN(X) |
« View previous topic :: View next topic » |
Author |
Message
|
PeterPotkay |
Posted: Mon Mar 28, 2016 4:30 am Post subject: What is the MQ Client using for QM Name on MQCONN(X) |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
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 |
|
 |
PaulClarke |
Posted: Mon Mar 28, 2016 5:03 am Post subject: |
|
|
 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 |
|
 |
PeterPotkay |
Posted: Mon Mar 28, 2016 5:10 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
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 |
|
 |
PaulClarke |
Posted: Mon Mar 28, 2016 5:31 am Post subject: |
|
|
 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 |
|
 |
tczielke |
Posted: Mon Mar 28, 2016 10:51 am Post subject: |
|
|
Guardian
Joined: 08 Jul 2010 Posts: 941 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 |
|
 |
hughson |
Posted: Tue Mar 29, 2016 12:17 am Post subject: |
|
|
 Padawan
Joined: 09 May 2013 Posts: 1959 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 |
|
 |
PeterPotkay |
Posted: Tue Mar 29, 2016 7:05 am Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
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 |
|
 |
tczielke |
Posted: Wed Mar 30, 2016 5:53 am Post subject: |
|
|
Guardian
Joined: 08 Jul 2010 Posts: 941 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 |
|
 |
gbaddeley |
Posted: Wed Mar 30, 2016 3:13 pm Post subject: |
|
|
 Jedi Knight
Joined: 25 Mar 2003 Posts: 2538 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 |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|