Author |
Message
|
mcmags34 |
Posted: Tue Jul 01, 2003 8:25 am Post subject: Sporadic Appearance of "!" Character in MQMD Field |
|
|
Novice
Joined: 02 May 2002 Posts: 14 Location: Philadelphia, PA
|
Has anyone ever seen a situation where an unwanted character mysteriously appears in one or more of the fields within the header of an outgoing message, causing it to land in the dead-letter queue of the target queue manager?
For instance, we have an AIX queue manager containing a remote queue definition. The remote queue resides on an OS/390. In small but steady numbers, messages put on this remote queue are landing in the dead-letter queue of the target queue manager. When we inspect the message descriptor fields within the DLQ, we see that the "!" character has been mysteriously appended to the end of the Destination Queue Manager, Reply-to Queue, or Remote Queue Name fields. Sometimes, it shows up in only one of these. Other times, it's evident in two or more. It's always an exlamation point, and it's always at the very end of the field in question.
NOTHING has changed in our environment, and the owners of the remote queue manager are claiming the same thing. Why did this start happening all of a sudden? Is this a CCSID or data conversion issue, perhaps? If so, why is it only happening sporadically? We're unable to reproduce this behavior on a consistent basis, and nothing has changed in any of the MQPUTting applications.
Thanks in advance for any advice you could give!
Cheers,
Chris |
|
Back to top |
|
 |
mrlinux |
Posted: Tue Jul 01, 2003 9:26 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
Is mainframe program written 'c' ??? Because it sounds like the app is doing it. _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
mcmags34 |
Posted: Tue Jul 01, 2003 9:31 am Post subject: |
|
|
Novice
Joined: 02 May 2002 Posts: 14 Location: Philadelphia, PA
|
I'm not sure what language the mainframe programs are written in, but I can't really blame it on their applications since our request messages are landing in their DLQ before their code even touches them. Something is modifying our message header fields (sporadically), and it doesn't seem to be linked to any particular application or set of circumstances. Totally random (and driving me nuts).
Thanks for your help! |
|
Back to top |
|
 |
mrlinux |
Posted: Tue Jul 01, 2003 9:34 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
oops my mistake, I thought the message was coming from the mainframe
Well I would take it that the AIX Application is probaly written in 'c'
my guess is that the code either using a bad pointer into the mqmd or
the code is strcpy instead of memcpy to move data in and out of the mqmd. _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
mcmags34 |
Posted: Tue Jul 01, 2003 9:40 am Post subject: |
|
|
Novice
Joined: 02 May 2002 Posts: 14 Location: Philadelphia, PA
|
No worries - I really appreciate your help.
The outgoing messages are generated by a variety of applications, most written in VB by our internal developers, but some in C by a third party. This problem is creeping up in BOTH cases, which makes me believe that it's got to have something to do with our Queue Manager or Sender Channel. Or, maybe something is getting messed up in the data conversion from ASCII to EBCDIC (we have CONVERT(YES) set on the Sender Channel, and the sending QM has a CCSID of 819 - I'm not sure if any of those facts mean anything).
Thanks again! |
|
Back to top |
|
 |
mrlinux |
Posted: Tue Jul 01, 2003 10:05 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
Well I thought AIX CCSID was suppose to be 1051, I could be wrong though, I will try to look it up. _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
mrlinux |
Posted: Tue Jul 01, 2003 10:12 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
Well is possible the characters coming from the AIX box contain chars '[' ']' ??? _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
mcmags34 |
Posted: Tue Jul 01, 2003 10:22 am Post subject: |
|
|
Novice
Joined: 02 May 2002 Posts: 14 Location: Philadelphia, PA
|
One fact that has me looking beyond code: This "!" character most often shows up in the Destination Queue Manager and Destination Queue fields. However, aren't these values set automatically in the local definition of the remote queue? No code should be setting these values. The application specifies the name of the local queue manager and local definition of the remote queue when sending messages, and the remote QDEF takes care of setting this header information as far as I understand.
I'm not aware of any brackets being set in these or any other properties. The local definition of the remote queue is configured correctly, without the "!" character. Most of our messages go through fine, but occasionally the "!" characters are mysteriosuly implanted. Crazy! |
|
Back to top |
|
 |
mrlinux |
Posted: Tue Jul 01, 2003 10:30 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
When you reference Destination Queue/QMGR are you talking about the
Dead Letter Header fields ???? If so what is the DLQ reason code??? _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
mcmags34 |
Posted: Tue Jul 01, 2003 10:37 am Post subject: |
|
|
Novice
Joined: 02 May 2002 Posts: 14 Location: Philadelphia, PA
|
Yes. Exactly.
In the DLQ of the remote queue manager, the headers show reason code 2086 (invalid destination queue manager name). This is because they should be arriving with "SOME.QMGR.NAME", but instead are showing up with "SOME.QMGR.NAME !".
I'm trying to figure out what is putting the "!" character at the end of the field since it is supposed to be set by the system through our remote queue definition, which of course shows "SOME.QMGR.NAME".
I can't tell you how much I appreciate your sticking with me on this one. It's particularly maddening, this issue! |
|
Back to top |
|
 |
mrlinux |
Posted: Tue Jul 01, 2003 10:47 am Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
Well this is a bit of a long shot, but MQSeries uses agents as interfaces between applications and the queue manager, these agents are multithreaded and each agent thread handles a MQ application.
Well it might be possible for one the applications to corrupt another applications memory in the agent memory space. you could try setting it up so that each application get a seperate agent process.
This might lead to which one is corrupting what.
see this link, it describes how to setup multithreaded agents, what you
want do is cut it down to one agent per application. V5.2 has the multithreaded agents enabled by default.
http://www-3.ibm.com/software/integration/support/supportpacs/individual/mp02/csd3tune.html _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
mcmags34 |
Posted: Tue Jul 01, 2003 11:07 am Post subject: |
|
|
Novice
Joined: 02 May 2002 Posts: 14 Location: Philadelphia, PA
|
Thanks! One additional thought: If we have a memory corruption issue, why would the behavior be so consistent? In other words, why would we ALWAYS see an exclamation point in the last position of the field in question?
Who knows - Maybe that is MQ's way of telling us there is a problem at the MCA level. I will certainly look into your suggestion.
Thanks again for your help! |
|
Back to top |
|
 |
mrlinux |
Posted: Tue Jul 01, 2003 5:42 pm Post subject: |
|
|
 Grand Master
Joined: 14 Feb 2002 Posts: 1261 Location: Detroit,MI USA
|
I agree about it being a long shot, but I was looking for a common thread (no pun intended) since there are multiple apps written in different languages _________________ Jeff
IBM Certified Developer MQSeries
IBM Certified Specialist MQSeries
IBM Certified Solutions Expert MQSeries |
|
Back to top |
|
 |
PeterPotkay |
Posted: Wed Jul 02, 2003 7:02 pm Post subject: |
|
|
 Poobah
Joined: 15 May 2001 Posts: 7722
|
OK, real obvious question here but I did not see you answer it. What is the value of the RemoteQueueManagerName in the remote queue definition on the AIX box? Are you sure it is not screwed up there?
Are there any Queue Manager Aliases on the AIX QM, the MF QM, or any in between MQS that could be modifying it for you? Is MQSI involved in between these 2 systems? _________________ Peter Potkay
Keep Calm and MQ On |
|
Back to top |
|
 |
mcmags34 |
Posted: Mon Jul 07, 2003 8:17 am Post subject: |
|
|
Novice
Joined: 02 May 2002 Posts: 14 Location: Philadelphia, PA
|
The QREMOTE definition is correct. 80% of our messages are not having any problems being delivered. It's the other 20% that are getting the "!" mysteriously appended in one or more crucial header fields.
Do you think I should delete and recreate my remote queue definition and see if that fixes it? I tried stopping the sender channel and restarting it, but that did not help at all.
Thanks for your help! |
|
Back to top |
|
 |
|