Author |
Message
|
rekarm01 |
Posted: Mon Aug 09, 2010 1:47 pm Post subject: Re: saveqmgr bad PCF response message |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
It might help to display the contents of the MQMD associated with the command message, at least to compare ccsids.
If browsing the command queue is not feasible, consider modifying saveqmgr, adding a few lines of debugging code to mqutils.c PutMsg(), after the MQPUT call. For example:
Code: |
fprintf(stderr, "\n(mqutils.c) *** MQMD ***");
dumpInHex(&MsgDesc, sizeof(&MsgDesc)); |
|
|
Back to top |
|
 |
mqjeff |
Posted: Mon Aug 09, 2010 6:42 pm Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
...
Or just increase the undocumented diagnostics flag...
Code: |
if (diagnostics>10) {
fprintf(stderr, "\n(mqutils.c) *** Putting to command server ***");
dumpInHex(UserMsg, UserMsgLen);
}
|
yes, yes.
Okay.
That doesn't technically show the CCSID on the MQMD.
But the CCSID on the MQMD has already been shown not to be an issue, afaik, given that the same code works fine against a different qmgr. |
|
Back to top |
|
 |
rekarm01 |
Posted: Tue Aug 10, 2010 2:07 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
mqjeff wrote: |
Or just increase the undocumented diagnostics flag...
Code: |
fprintf(stderr, "\n(mqutils.c) *** Putting to command server ***"); |
|
The current diagnostic setting (-D7) is already displaying this output:
eleanora wrote: |
mqm@lppwa1154[/var/mqm/bin]./saveqmgr.Linux -D7 -m LPPWA1154 -f
...
(mqutils.c) ReplyToQ: SAVEQMGR.4C4D1AF62004B305 (mqutils.c) *** Putting to command server *** length - 36 bytes
... |
So, at least that's changed since saveqmgr V6.0.3.
Though, increasing the diagnostic level (>20 ?) might reveal other useful information.
mqjeff wrote: |
But the CCSID on the MQMD has already been shown not to be an issue, afaik, given that the same code works fine against a different qmgr. |
The qmgr ccsid might not be an issue, but the MQMD ccsid has not been shown at all. |
|
Back to top |
|
 |
eleanora |
Posted: Tue Aug 10, 2010 2:19 am Post subject: |
|
|
Novice
Joined: 18 Nov 2002 Posts: 16 Location: Melbourne, Australia
|
while i cannot do a lot on this production serer with some of your suggestions, i can run saveqmgr. so
mqm@lppwa1154[/var/mqm/bin]./saveqmgr.Linux -D21 -m LPPWA1154 -f
SAVEQMGR V6.0.3
Compiled for Websphere MQ V6.0 on Aug 29 2006
(saveqmgr.c) executing with diagnostic level 21
Requesting attributes of the queue manager...
(mqutils.c) ReplyToQ: SAVEQMGR.4C4D1AF62007F70A (mqutils.c) *** Putting to command server *** length - 36 bytes
00000000: 0100 0000 2400 0000 0100 0000 0200 0000 '....$...........'
00000010: 0100 0000 0100 0000 0000 0000 0000 0000 '................'
00000020: 0000 0000 '.... '
MsgId : X'414D51204C5050574131313534202020F61A4D4C0BF70720'
(mqutils.c) Before MQGET: Options: 24577, Encoding: 546, CCSID: 0
(mqutils.c) After MQGET: RC: 0, Options: 24577, Encoding: 546, CCSID: 819, Format 'MQADMIN '
(mqutil.c) *** Got message from command server ***
CorrelId : X'414D51204C5050574131313534202020F61A4D4C0BF70720'
length - 52 bytes
00000000: 0200 0000 2400 0000 0100 0000 0200 0000 '....$...........'
00000010: 0100 0000 0000 0000 0200 0000 E90B 0000 '................'
00000020: 0100 0000 0300 0000 1000 0000 0200 0000 '................'
00000030: 3303 0000 '3... '
(saveqmgr.c) processing a response:
Type = 2
StrucLength = 36
Version = 1
Command = 2
MsgSeqNumber = 1
Control = 0
CompCode = 2
Reason = 3049
ParameterCount = 1
(ObjectSets) = 1
Got bad PCF response message
Type = 2
StrucLength = 36
Version = 1
Command = 2
MsgSeqNumber = 1
Control = 0
CompCode = 2
Reason = 3049
ParameterCount = 1
Parameter = 2
Value = 819
Processing Aborted, output file may be incomplete
```````````````````````````````````````````````
```````````````````````````````````````````````
./saveqmgr.linux -D21 -m LPPWA1154 -f
Compiled for Websphere MQ V7.0.1.0 on Jan 22 2010
(args.c) current arg is -m at 2 of 5 and invalidParm is 0
(args.c) Processing -m flag, setting Local Queue Manager to LPPWA1154
(args.c) current arg is -f at 4 of 5 and invalidParm is 0
(saveqmgr.c) executing with diagnostic level 21
(saveqmgr.c) executing with header 1
(saveqmgr.c) executing with SysObjs = 1
SAVEQMGR V6.1.3
Requesting attributes of the queue manager...
(mqutils.c) ReplyToQ: SAVEQMGR.4C4D1AF62007F710
(mqutils.c) *** Putting to command server *** length - 36 bytes
00000000: 0100 0000 2400 0000 0100 0000 0200 0000 '....$...........'
00000010: 0100 0000 0100 0000 0000 0000 0000 0000 '................'
00000020: 0000 0000 '.... '
MsgId : X'414D51204C5050574131313534202020F61A4D4C11F70720'
(mqutils.c) Before MQGET: Options: 24577, Encoding: 546, CCSID: 0, WaitInterval: 60000
(mqutils.c) After MQGET: RC: 0, Options: 24577, Encoding: 546, CCSID: 819, Format 'MQADMIN '
(mqutil.c) *** Got message from command server ***
CorrelId : X'414D51204C5050574131313534202020F61A4D4C11F70720'
length - 52 bytes
00000000: 0200 0000 2400 0000 0100 0000 0200 0000 '....$...........'
00000010: 0100 0000 0000 0000 0200 0000 E90B 0000 '................'
00000020: 0100 0000 0300 0000 1000 0000 0200 0000 '................'
00000030: 3303 0000 '3... '
(saveqmgr.c) processing a response:
Type = 2
StrucLength = 36
Version = 1
Command = 2
MsgSeqNumber = 1
Control = 0
CompCode = 2
Reason = 3049
ParameterCount = 1
(ObjectSets) = 1
Got bad PCF response message
Type = 2
StrucLength = 36
Version = 1
Command = 2
MsgSeqNumber = 1
Control = 0
CompCode = 2
Reason = 3049
ParameterCount = 1
Parameter = 2
Value = 819
Processing Aborted, output file may be incomplete
``````````````````````````````````````````` |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Aug 10, 2010 2:32 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
rekarm01 wrote: |
mqjeff wrote: |
Or just increase the undocumented diagnostics flag...
Code: |
fprintf(stderr, "\n(mqutils.c) *** Putting to command server ***"); |
|
The current diagnostic setting (-D7) is already displaying this output:
eleanora wrote: |
mqm@lppwa1154[/var/mqm/bin]./saveqmgr.Linux -D7 -m LPPWA1154 -f
...
(mqutils.c) ReplyToQ: SAVEQMGR.4C4D1AF62004B305 (mqutils.c) *** Putting to command server *** length - 36 bytes
... |
|
oh yeah, hey, lookit that...
rekarm01 wrote: |
So, at least that's changed since saveqmgr V6.0.3.
Though, increasing the diagnostic level (>20 ?) might reveal other useful information. |
I didn't see anywhere in the code where it specifically outputs the CCSID of the command messages.
There may be additional value to be had in increasing the value of the -D flag, but a) there's not yet a lot of sense to how the value should be set, that is setting it to 10 has different meanings in different code points b) ms03 ships with source, in this case the easiest way to find out what to set -D to is to check the source to see where it's doing what you need to diagnose.
More importantly, a client side mq trace may be just as helpful.
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=/com.ibm.mq.csqzaf.doc/cs12910_.htm |
|
Back to top |
|
 |
rekarm01 |
Posted: Tue Aug 10, 2010 10:02 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
mqjeff wrote: |
I didn't see anywhere in the code where it specifically outputs the CCSID of the command messages. |
... which is why I suggested modifying the source code, to display the contents of the entire MQMD. Maybe it will help, or maybe it won't, but it's probably worth trying out.
I might also suggest additional debug statements to identify the actual MQPUT qmgr and queue names.
mqjeff wrote: |
There may be additional value to be had in increasing the value of the -D flag, but a) there's not yet a lot of sense to how the value should be set ... |
For the V6.0.3 version, increasing the value doesn't seem to help; V6.1.3 seems to have more debug statements, and '21' looks large enough to print all of them.
... assuming that option isn't ruled out in a production environment. |
|
Back to top |
|
 |
mqjeff |
Posted: Tue Aug 10, 2010 10:29 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
rekarm01 wrote: |
mqjeff wrote: |
I didn't see anywhere in the code where it specifically outputs the CCSID of the command messages. |
... which is why I suggested modifying the source code, to display the contents of the entire MQMD. Maybe it will help, or maybe it won't, but it's probably worth trying out.
I might also suggest additional debug statements to identify the actual MQPUT qmgr and queue names. |
Yes, I agree with this..
More work on this flag is on plan, as I said there's not much in the way of sense in how the value is configured - so I am considering doing things like using positional flags to say "if the value is mod 100, then output all of the MQ related diagnostics, if the value is mod 1000 then output all argument processing diagnostics" and etc...
But that won't be in the next release.
rekarm01 wrote: |
mqjeff wrote: |
There may be additional value to be had in increasing the value of the -D flag, but a) there's not yet a lot of sense to how the value should be set ... |
For the V6.0.3 version, increasing the value doesn't seem to help; V6.1.3 seems to have more debug statements, and '21' looks large enough to print all of them. |
Increased diagnostics has been a development direction...
rekarm01 wrote: |
... assuming that option isn't ruled out in a production environment. |
A client trace may be less invasive a change than a trace on the server side. |
|
Back to top |
|
 |
gbaddeley |
Posted: Tue Aug 10, 2010 3:23 pm Post subject: |
|
|
 Jedi Knight
Joined: 25 Mar 2003 Posts: 2538 Location: Melbourne, Australia
|
Quote: |
rekarm01 wrote: |
... assuming that option isn't ruled out in a production environment. |
A client trace may be less invasive a change than a trace on the server side. |
....or run a message logging exit on the SVRCONN channel, such as SupportPac MA0Z http://www.ibm.com/support/docview.wss?uid=swg24022993 , which interprets the MQI calls and MQMDs and dumps the Message Data. _________________ Glenn |
|
Back to top |
|
 |
rekarm01 |
Posted: Wed Aug 11, 2010 12:05 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 1415
|
gbaddeley wrote: |
Quote: |
A client trace may be less invasive a change than a trace on the server side. |
....or run a message logging exit on the SVRCONN channel |
... assuming there is a SVRCONN channel. Isn't that the difference between saveqmgr and saveqmgrc?
The MQ client version and MQ server version of saveqmgr also resolves MQCCSI_QMGR differently; it's possible that switching programs may not reproduce the error, making it more difficult to diagnose.
It does seem like a bit more work than adding a couple lines of debugging code and recompiling. |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Aug 11, 2010 2:09 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
rekarm01 wrote: |
It does seem like a bit more work than adding a couple lines of debugging code and recompiling. |
There is a reason saveqmgr ships with as complete a set of prebuilt binaries, both client and non-client, as I can manage. |
|
Back to top |
|
 |
eleanora |
Posted: Sun Aug 15, 2010 10:05 pm Post subject: |
|
|
Novice
Joined: 18 Nov 2002 Posts: 16 Location: Melbourne, Australia
|
|
Back to top |
|
 |
mqjeff |
Posted: Mon Aug 16, 2010 2:41 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
I don't know that other people will be able to see that PMR result.
I'm following up on this and will respond back by email, and update this thread when there's a resolution. |
|
Back to top |
|
 |
Drax |
Posted: Tue Dec 07, 2010 11:57 pm Post subject: |
|
|
 Novice
Joined: 16 Apr 2007 Posts: 12 Location: China
|
is it the case that change the CCSID in qmgr without restart the qmgr to synchronize the new CCSID with command server? |
|
Back to top |
|
 |
mqjeff |
Posted: Wed Dec 08, 2010 3:17 am Post subject: |
|
|
Grand Master
Joined: 25 Jun 2008 Posts: 17447
|
Drax wrote: |
is it the case that change the CCSID in qmgr without restart the qmgr to synchronize the new CCSID with command server? |
Yes, that's a reasonably good description of what the result was. |
|
Back to top |
|
 |
|