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 » WebSphere Message Broker (ACE) Support » Warning on MQGET Propagating message to the failure terminal

Post new topic  Reply to topic
 Warning on MQGET Propagating message to the failure terminal « View previous topic :: View next topic » 
Author Message
mqxplorer
PostPosted: Wed Dec 26, 2012 7:12 pm    Post subject: Warning on MQGET Propagating message to the failure terminal Reply with quote

Master

Joined: 22 Jun 2009
Posts: 206

Hi All,

I have got the exception in subject line in PRODUCTION after deploying a flow wit slight modifications to it.

I have gone through a lot of posts in this forum, however, the more posts I read, the more I got confused ( may be my mind is bit tensed as this is a PROD issue).

We have a message flow which receives messages from a mainframe system (model 204). We receive a delimited message and we have a MRM message set with TDS format. We had situations where we were getting values which after transformation were causing issues in the subsequent flow as they were non-representable XML characters. As the mainframe guys were not ready to clean up their data, I wrote a java method which strips off the invalid XML characters. In order to do this, I read the mainframe message in BLOB domain with MQInput node convert option selected with CCSID 1208 and Encoding 546. After the MQInput node I have compute node which first converts the BLOB data from MQInput node to CHAR using CCSID 1208 and calls the java routine to strip off the invalid xml charatcters (non-printable xml characters). I pass it to RCD node where I reset the message domain to MRM and then do the mapping from MRM to XML. This has worked in all lower environments except in PROD. I got the exception in the subject line in PROD.

There is one more thing I need to mention here, as the mainframe folks were not ready to send the data with 0x0 or similar ones in lower environments, I modified one of the existing messages saved from the input queue (that receives the messages from the mainframe system) (contains the MQMD headers) using vi editor in linux box (dev box) and used to test my changes up to Staging. I used the below commands to edit the binary file.

Code:
Open in binary mode:

      vi –b filename

Convert file to hex dump:

                :%!xxd

Edit the file (add/remove)

Convert back to binary:

                :%!xxd –r

Save the file:

      :wq


As I can't use the hand edited messages in PROD, when the mainframe system sent messages in PROD, all failed with the reason code in subject line. I did not understand the reason why it failed in PROD not up to Staging. I am not sure if I understood the covert option in MQInput node. Can anyone help me solve this?

Thanks in advance..

Thanks
mqxplorer
Back to top
View user's profile Send private message
kash3338
PostPosted: Wed Dec 26, 2012 9:24 pm    Post subject: Re: Warning on MQGET Propagating message to the failure term Reply with quote

Shaman

Joined: 08 Feb 2009
Posts: 709
Location: Chennai, India

mqxplorer wrote:
I have got the exception in subject line in PRODUCTION after deploying a flow wit slight modifications to it.


What slight modification have you made for PROD?

Also, do you have a copy of the actual message which comes from MAINFRAME's in PROD? If so did you try to run that message in lower env?
Back to top
View user's profile Send private message Send e-mail
fjb_saper
PostPosted: Thu Dec 27, 2012 1:49 am    Post subject: Reply with quote

Grand High Poobah

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

DO NOT USE THE CONVERT option on MQInput node.
Let the broker convert the data. Especially with MRM, and CCSIDs like 1208 where you may get multibyte characters... Also do not use convert on the channel...

Just apply the MRM to the data on the MQInput node without using convert.

If your output CCSID is 1208 there should not be any unconvertable XML characters... unless the MF is sending control characters...(why should they?)

Have fun
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
mqxplorer
PostPosted: Thu Dec 27, 2012 6:06 am    Post subject: Reply with quote

Master

Joined: 22 Jun 2009
Posts: 206

fjb_saper wrote:
DO NOT USE THE CONVERT option on MQInput node.
Let the broker convert the data. Especially with MRM, and CCSIDs like 1208 where you may get multibyte characters... Also do not use convert on the channel...

Just apply the MRM to the data on the MQInput node without using convert.

If your output CCSID is 1208 there should not be any unconvertable XML characters... unless the MF is sending control characters...(why should they?)

Have fun


Thanks for your response. The whole problem is with the data coming from mainframe system which is sending control characters like 0x0, 0x1 etc and when asked, their response is that they don't have issue with that data while storing it in their database, hence they feel it is not their problem. In order to deal with control characters, I wrote a java routine which strips-off the non-representable XML characters. Initially, I did this after transforming the message from MRM to XML parsing the input message with MRM message set. However, we had one more issue which I thought I would resolve it by pasring the input message in BLOB doamin. We use flow monitoring for auditing purposes for which we specify $Properties and $Body on the input node which emits the payload as an xml file with broekr's pub-sub mechanism. As the emiited audit message for payload is reprsented as an XML, it also fails in the audit flow (does databse insertion) as the input message contains control characters.

I am really confused why this did not afil upto Staging and why in PROD only the failure? Is it because the messages I used till staging were the edited messages in a vi editor? I did not touch the message headers at all, I just used a valid sample and replaced valid values with some control charatcers. I tested with these samples and it worked.

I could not understand the purpose of Convert option on MQInput node. What does it exactly do?

Thanks
mqxplorer
Back to top
View user's profile Send private message
mqxplorer
PostPosted: Thu Dec 27, 2012 7:50 am    Post subject: Reply with quote

Master

Joined: 22 Jun 2009
Posts: 206

I found out something interesting. When I tried to process the PROD failed messages in DEV, I see the same exception as in PROD. When I observed the difference between the messages I have used to test in lower level environments and the ones in PROD, I see the message format of the messages I used in lower level environments is 'MQSTR' where as the ones that faield in PROD do not have the message format set to MQSTR. When I changed the message format of the PROD faield messages to 'MQSTR' and tried processing them in DEV, they worked fine. Looks like the issue is with the message format. With this analysis, can I go ahead and ask the mainframe application team folks to set the message format to 'MQSTR' so that I don't need to change anything in my code?

Thanks
mqxplorer
Back to top
View user's profile Send private message
mqjeff
PostPosted: Thu Dec 27, 2012 8:06 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

It would make a difference to know what the actual message format actually is, then you would know whether or not you should be performing the necessary steps to deal with that format, rather than forcing the mainframe to change what it's sending.
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 » WebSphere Message Broker (ACE) Support » Warning on MQGET Propagating message to the failure terminal
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.