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 » Parser exception while writing the SWIFT data

Post new topic  Reply to topic
 Parser exception while writing the SWIFT data « View previous topic :: View next topic » 
Author Message
RB
PostPosted: Mon Apr 16, 2012 4:11 am    Post subject: Parser exception while writing the SWIFT data Reply with quote

Acolyte

Joined: 23 May 2006
Posts: 56

Hi,

We are trying out to implement a scenario where I am trying to convert the XML message to the SWIFT structure using single message definition as given below using Message Broker 6.1.x.

The incoming message is a SWIFT message with a custom header/trailer values. We have created one message set to define the header and trailer fields, and the field defining the SWIFT body is referring to the definitions in another message set. We have added both XML and SWIFT physical formats to the message sets.

The incoming message is in the xml format confirming to the message defined and one trace node kept after the mqinput node is able to parse and show the full tree structure (header, body and trailer fields are parsed successfully!). The compute node is a pass through, with one extra line to reset the physical format to SWIFT. I am getting the below error while trying to write the output to the queue!

Code:
     (0x01000000:Name     ):ParserException = (
        (0x03000000:NameValue):File            = '/build/S610P/src/cpi/pwf/nxd/tdswriter.cpp' (CHARACTER)
        (0x03000000:NameValue):Line            = 269 (INTEGER)
        (0x03000000:NameValue):Function        = 'CTDSWriter::write' (CHARACTER)
        (0x03000000:NameValue):Type            = '' (CHARACTER)
        (0x03000000:NameValue):Name            = '' (CHARACTER)
        (0x03000000:NameValue):Label           = '' (CHARACTER)
        (0x03000000:NameValue):Catalog         = 'BIPv610' (CHARACTER)
        (0x03000000:NameValue):Severity        = 1 (INTEGER)
        (0x03000000:NameValue):Number          = 5447 (INTEGER)
        (0x03000000:NameValue):Text            = 'TDS writing error' (CHARACTER)
        (0x01000000:Name     ):Insert          = (
          (0x03000000:NameValue):Type = 5 (INTEGER)
          (0x03000000:NameValue):Text = '/MT900(1 of unbounded)' (CHARACTER)
        )
        (0x01000000:Name     ):ParserException = (
          (0x03000000:NameValue):File     = '/build/S610P/src/cpi/pwf/nxd/tdswritercomplexnode.cpp' (CHARACTER)
          (0x03000000:NameValue):Line     = 302 (INTEGER)
          (0x03000000:NameValue):Function = 'CTDSWriterComplexNode::IdentifyFlexible' (CHARACTER)
          (0x03000000:NameValue):Type     = '' (CHARACTER)
          (0x03000000:NameValue):Name     = '' (CHARACTER)
          (0x03000000:NameValue):Label    = '' (CHARACTER)
          (0x03000000:NameValue):Catalog  = 'BIPv610' (CHARACTER)
          (0x03000000:NameValue):Severity = 3 (INTEGER)
          (0x03000000:NameValue):Number   = 5453 (INTEGER)
          (0x03000000:NameValue):Text     = 'Incoming message not defined.' (CHARACTER)


We have already verified the values in the properties section of message tree and is correctly showing the one corresponding to our message set, but still getting this error! Please let us know in case you could help us to resolve this?

Regards,
RB
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Apr 16, 2012 5:06 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

Specify your versions of runtime, toolkit, and SWIFT pack. 6.1.x is not specific enough.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
kimbert
PostPosted: Mon Apr 16, 2012 5:36 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

lancelotlinc said:
Quote:
Specify your versions of runtime, toolkit, and SWIFT pack
RB did not say that he is using a SWIFT pack. He may have designed the SWIFT physical format himself.

Quote:
I am trying to convert the XML message to the SWIFT structure using single message definition as given below using Message Broker 6.1.x.
How did you create your SWIFT message definition? Has it ever worked?

Quote:
I am getting the below error while trying to write the output to the queue!
That error is of no use at all. Look in Windows Event Viewer -there will be at least three errors there, and one of them will give a *lot* more detail that you have posted.

Quote:
We have already verified the values in the properties section of message tree and is correctly showing the one corresponding to our message set, but still getting this error!
Well, the SWIFT format is a known 'hard case'. Converting from an XML structure to a SWIFT format is a hard problem, and the TDS parser is doing a *lot* of work for you. Don't be surprised that it did not work first time.

Please answer all of the questions above, and then I should be able to give some hints on how to diagnose the problem.
Back to top
View user's profile Send private message
RB
PostPosted: Mon Apr 16, 2012 5:50 am    Post subject: Reply with quote

Acolyte

Joined: 23 May 2006
Posts: 56

Here are the details -
Runtime -6.1.x on zOS (not sure on the exact fix pack level) Toolkit - Version: 6.1.0 Build id: 6.1.0-20071108_1112, Swift pack is – Swift 2011 custom extended char set pack

We are using the SWIFT pack, but we need to model for a custom header and trailer, trying to define those details in a new message set!

Broker is running on zOS, and the complete exception list is as given below. Not sure if this is of much help!

Code:
( ['MQROOT' : 0x2afdfee8]
  (0x01000000:Name):RecoverableException = (
    (0x03000000:NameValue):File            = '/build/S610P/src/DataFlowEngine/ImbMqOutputNode.cpp' (CHARACTER)
    (0x03000000:NameValue):Line            = 918 (INTEGER)
    (0x03000000:NameValue):Function        = 'ImbMqOutputNode::evaluate' (CHARACTER)
    (0x03000000:NameValue):Type            = 'ComIbmMQOutputNode' (CHARACTER)
    (0x03000000:NameValue):Name            = 'Test_IATA#FCMComposite_1_2' (CHARACTER)
    (0x03000000:NameValue):Label           = 'Test_IATA.MQOutput' (CHARACTER)
    (0x03000000:NameValue):Catalog         = 'BIPv610' (CHARACTER)
    (0x03000000:NameValue):Severity        = 3 (INTEGER)
    (0x03000000:NameValue):Number          = 2230 (INTEGER)
    (0x03000000:NameValue):Text            = 'Caught exception and rethrowing' (CHARACTER)
    (0x01000000:Name     ):ParserException = (
      (0x03000000:NameValue):File            = '/build/S610P/src/MTI/MTIforBroker/MtiImbParser2/MtiImbParser.cpp' (CHARACTER)
      (0x03000000:NameValue):Line            = 1891 (INTEGER)
      (0x03000000:NameValue):Function        = 'MtiImbParser::refreshBitStreamFromElements - 9 par' (CHARACTER)
      (0x03000000:NameValue):Type            = 'ComIbmMQInputNode' (CHARACTER)
      (0x03000000:NameValue):Name            = 'Test_IATA#FCMComposite_1_1' (CHARACTER)
      (0x03000000:NameValue):Label           = 'Test_IATA.MQInput' (CHARACTER)
      (0x03000000:NameValue):Catalog         = 'BIPv610' (CHARACTER)
      (0x03000000:NameValue):Severity        = 3 (INTEGER)
      (0x03000000:NameValue):Number          = 5286 (INTEGER)
      (0x03000000:NameValue):Text            = 'ImbRecoverableException caught from worker when attempting to write out the bitstream.' (CHARACTER)
      (0x01000000:Name     ):Insert          = (
        (0x03000000:NameValue):Type = 5 (INTEGER)
        (0x03000000:NameValue):Text = 'MSET_NAME' (CHARACTER)
      )
      (0x01000000:Name     ):Insert          = (
        (0x03000000:NameValue):Type = 2 (INTEGER)
        (0x03000000:NameValue):Text = '1' (CHARACTER)
      )
      (0x01000000:Name     ):Insert          = (
        (0x03000000:NameValue):Type = 5 (INTEGER)
        (0x03000000:NameValue):Text = 'SWIFT' (CHARACTER)
      )
      (0x01000000:Name     ):Insert          = (
        (0x03000000:NameValue):Type = 5 (INTEGER)
        (0x03000000:NameValue):Text = '/MSET_TYPE_NAME' (CHARACTER)
      )
      (0x01000000:Name     ):ParserException = (
        (0x03000000:NameValue):File            = '/build/S610P/src/cpi/pwf/nxd/tdswriter.cpp' (CHARACTER)
        (0x03000000:NameValue):Line            = 269 (INTEGER)
        (0x03000000:NameValue):Function        = 'CTDSWriter::write' (CHARACTER)
        (0x03000000:NameValue):Type            = '' (CHARACTER)
        (0x03000000:NameValue):Name            = '' (CHARACTER)
        (0x03000000:NameValue):Label           = '' (CHARACTER)
        (0x03000000:NameValue):Catalog         = 'BIPv610' (CHARACTER)
        (0x03000000:NameValue):Severity        = 1 (INTEGER)
        (0x03000000:NameValue):Number          = 5447 (INTEGER)
        (0x03000000:NameValue):Text            = 'TDS writing error' (CHARACTER)
        (0x01000000:Name     ):Insert          = (
          (0x03000000:NameValue):Type = 5 (INTEGER)
          (0x03000000:NameValue):Text = '/MT900(1 of unbounded)' (CHARACTER)
        )
        (0x01000000:Name     ):ParserException = (
          (0x03000000:NameValue):File     = '/build/S610P/src/cpi/pwf/nxd/tdswritercomplexnode.cpp' (CHARACTER)
          (0x03000000:NameValue):Line     = 302 (INTEGER)
          (0x03000000:NameValue):Function = 'CTDSWriterComplexNode::IdentifyFlexible' (CHARACTER)
          (0x03000000:NameValue):Type     = '' (CHARACTER)
          (0x03000000:NameValue):Name     = '' (CHARACTER)
          (0x03000000:NameValue):Label    = '' (CHARACTER)
          (0x03000000:NameValue):Catalog  = 'BIPv610' (CHARACTER)
          (0x03000000:NameValue):Severity = 3 (INTEGER)
          (0x03000000:NameValue):Number   = 5453 (INTEGER)
          (0x03000000:NameValue):Text     = 'Incoming message not defined.' (CHARACTER)
        )
      )
    )
  )
)
Back to top
View user's profile Send private message
kimbert
PostPosted: Mon Apr 16, 2012 5:58 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
Broker is running on zOS, and the complete exception list is as given below. Not sure if this is of much help!
No - no help at all, I'm afraid.

Sorry to bring you bad news, but you have some work ahead of you. Modelling a data format is a technical task and requires a proper understanding of the data, the modelling language and the diagnostic tools that are available. If you expected to tweak the model, hit 'go' and then put your feet up then you're in for a shock .

My suggested next steps are:
- ignore the SWIFT body. Just model the header and the trailer and get that part working
- when you get errors, take a debug-level user trace and read what the TDS parser is telling you. If you don't know how to take a user trace, now would be an excellent time to learn.
- when you have tried out a few things, feel free to ask some specific questions about how to solve your problem. But make sure you ask questions that we can answer - I cannot tell you why your header is not being written unless I know exactly what the header should look like, exactly what your message tree looks like, and exactly what your TDS model looks like.
Back to top
View user's profile Send private message
RB
PostPosted: Mon Apr 16, 2012 6:31 am    Post subject: Reply with quote

Acolyte

Joined: 23 May 2006
Posts: 56

I will try this out tomorrow and will let u guys know..if I remember correctly, we had already verified the header and trailer part generation, but again let me verify this..

Yes, I am aware of the user trace, but unfortunately the client environment I am working is having lot of restrictions - they do not allow us to run trace commands!
Back to top
View user's profile Send private message
Vitor
PostPosted: Mon Apr 16, 2012 6:39 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

RB wrote:
Yes, I am aware of the user trace, but unfortunately the client environment I am working is having lot of restrictions - they do not allow us to run trace commands!


That's the 2nd time in here I've heard of a client not allowing trace. I would repeat the advice given then; ask the client how you're expected to develop without access to the development tools, and if the client management is aware how much extra it's costing in terms of effort without these tools.

It's also worth exploring if the restriction is a technical one (the command's been restricted) or a polictical one (it's just not allowed). The latter can be lifted at a decision, and the former is often poorly implemented.....
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Apr 16, 2012 8:04 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

6.1.x is not a valid version. 6.1.0.4? 6.1.0.8? I believe 6.1.0.11 is the most recent. It is important to know this. There may be APARs that would solve the problem you are experiencing.

If you are not permitted to use Service Trace, use log4j. Also ask the sysadmins to send you the output of the /var/adm/debug.log. And the output of the stderr file of the Execution Group.

Service Trace would be ideal.

When you run this flow on your development environment, what do you see? When you run this flow on your sandbox environment, what do you see? Better to get this flow running in the dev environment and the sandbox env first, then move it to z/OS.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Mon Apr 16, 2012 8:08 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

lancelotlinc wrote:
If you are not permitted to use Service Trace, use log4j.

It's a great idea, except that there's no guarantee that RB will be allowed to write to a file on the file system.

Presumably, it's easier to ask a system's admin to run the user/service trace than it is to rewrite the entire flow to add logging.

It *may* be a better idea to rewrite the entire flow to add logging. but, again, it may not be feasible for the same reason it's not feasible for RB to run user/service trace. No access!
Back to top
View user's profile Send private message
lancelotlinc
PostPosted: Mon Apr 16, 2012 8:19 am    Post subject: Reply with quote

Jedi Knight

Joined: 22 Mar 2010
Posts: 4941
Location: Bloomington, IL USA

mqjeff wrote:
lancelotlinc wrote:
If you are not permitted to use Service Trace, use log4j.

It's a great idea, except that there's no guarantee that RB will be allowed to write to a file on the file system.

Presumably, it's easier to ask a system's admin to run the user/service trace than it is to rewrite the entire flow to add logging.

It *may* be a better idea to rewrite the entire flow to add logging. but, again, it may not be feasible for the same reason it's not feasible for RB to run user/service trace. No access!


I agree with you.

Just fyi for further research: log4j has several Network Appenders:

SocketAppender - it sends LoggingEvent objects to a remote a log server, usually a SocketNode.
SocketHubAppender - it sends LoggingEvent objects to a set of remote log servers, usually SocketNodes .
JMSAppender - A simple appender that publishes events to a JMS Topic. The events are serialized and transmitted as JMS message type ObjectMessage. .
NTEventLogAppender - Append to the NT event log system.
_________________
http://leanpub.com/IIB_Tips_and_Tricks
Save $20: Coupon Code: MQSERIES_READER
Back to top
View user's profile Send private message Send e-mail
mqjeff
PostPosted: Mon Apr 16, 2012 8:29 am    Post subject: Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

lancelotlinc wrote:
Just fyi for further research: log4j has several Network Appenders:


Again, that requires that the broker in question is allowed to access the network. And that there's a meaningful other network location to receive the information.
Back to top
View user's profile Send private message
Vitor
PostPosted: Mon Apr 16, 2012 8:35 am    Post subject: Reply with quote

Grand High Poobah

Joined: 11 Nov 2005
Posts: 26093
Location: Texas, USA

Erm...

lancelotlinc wrote:
If you are not permitted to use Service Trace, use log4j. Also ask the sysadmins to send you the output of the /var/adm/debug.log. And the output of the stderr file of the Execution Group.


...

RB wrote:
Runtime -6.1.x on zOS


So the logs are not quite in those locations. And it's likely log4j won't work for the same reason trace won't work.

And network access is even less likely to work.
_________________
Honesty is the best policy.
Insanity is the best defence.
Back to top
View user's profile Send private message
kimbert
PostPosted: Mon Apr 16, 2012 10:14 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

The TDS parser is a c++ component. The information provided by a debug-level user trace cannot be obtained from log4j, nor from any other source.
A service trace would contain the same information as a debug-level user trace, plus megabytes of probably-useless information about the internals of the component.
Back to top
View user's profile Send private message
RB
PostPosted: Tue Apr 17, 2012 3:50 am    Post subject: Reply with quote

Acolyte

Joined: 23 May 2006
Posts: 56

Thanks a lot guys for your response. We are having zOS for all our environments - DEV/Sandbox and Test. So don’t have much help with the user trace. We are trying to get this enabled, but not successful yet.

I verified the wrapper message set once again, and it was creating the output correctly! I have got it working by importing the swift message definitions in to the wrapper message set itself. Not sure whether this should have made any difference, but it is able to write the output with this change!

Regards,
RB
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 » Parser exception while writing the SWIFT data
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.