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 » IDOC Parser (error handling issues)

Post new topic  Reply to topic
 IDOC Parser (error handling issues) « View previous topic :: View next topic » 
Author Message
Ramphart
PostPosted: Tue Jun 14, 2005 1:42 pm    Post subject: IDOC Parser (error handling issues) Reply with quote

Disciple

Joined: 21 Jul 2004
Posts: 150
Location: South Africa, JHB

Hi,

- WMQI 2.1 CSD 07 on Windows 2000.
- I'm trying to handle parsing, etc errors in the same way (via a subflow) no matter which parser is used on the main flows input node (MRM, IDOC, etc) but IDOC parser exceptions give unexpected results.

1. I'm parsing an IDOC using the IDOC domain and CWF etc as per support pack ia0f (WebSphere MQ Integrator - IDoc parser for SAP)
2. When the input data is correct the document parse and everything is ok, as expected.
3. The issue comes in when I submit an erroneous IDOC. I can't catch the exception when using the IDOC domain since my error routine (that’s wired to the catch terminal of the input node) falls over as well.
4. The problem seems to be that when an exception is raised using IDOC as the Message Domain (on the input node), the output produced when rolling back, i.e. the original message (IDOC), cannot be RCD'd as a BLOB. Really odd.

5. I’ve done a simple flow to validate my suspicion:
Code:
[out terminal]
InputNode (Msg Domain=IDOC, MsgSet=... MsgFormat=CWF, Validation=Content and Value, Exception ,Deferred) => Trace {Root}

[catch terminal]
Input Node => RCD (Message Domain=BLOB, Reset Msg Domain)

An invalid message fails and rolls back to the catch terminal then fails again on the RCD (to BLOB) and the exceptions end up in the Windows Event Log.


6. I can catch the error by ${ExceptionList} via a Trace node on the InputNode catch terminal instead of a RCD (BLOB). Here's an example of an exception:
Code:
  (0x1000000)RecoverableException = (
    (0x3000000)File            = 'F:\build\S210_BP\src\DataFlowEngine\ImbTraceNode.cpp'
    (0x3000000)Line            = 329
    (0x3000000)Function        = 'ImbTraceNode::evaluate'
    (0x3000000)Type            = 'ComIbmTraceNode'
    (0x3000000)Name            = '38ae7a77-0401-0000-0080-fdb80a98d8e7'
    (0x3000000)Label           = 'IDOC.Blob.Trace1'
    (0x3000000)Text            = 'Caught exception and rethrowing'
    (0x3000000)Catalog         = 'WMQIv210'
    (0x3000000)Severity        = 3
    (0x3000000)Number          = 2230
    (0x1000000)ParserException = (
      (0x3000000)File            = 'F:\build\S210_BP\src\MTI\MTIforBroker\MtiImbParser2\MtiImbSyntaxElement.cpp'
      (0x3000000)Line            = 292
      (0x3000000)Function        = 'CpContext::setToParse'
      (0x3000000)Type            = ''
      (0x3000000)Name            = ''
      (0x3000000)Label           = ''
      (0x3000000)Text            = 'ImbRecoverableException caught from worker->initializeParse/setFIHandler.'
      (0x3000000)Catalog         = 'WMQIv210'
      (0x3000000)Severity        = 3
      (0x3000000)Number          = 5285
      (0x1000000)Insert          = (
        (0x3000000)Type = 5
        (0x3000000)Text = 'ramo'
      )
      (0x1000000)Insert          = (
        (0x3000000)Type = 2
        (0x3000000)Text = '1'
      )
      (0x1000000)Insert          = (
        (0x3000000)Type = 5
        (0x3000000)Text = 'CWF'
      )
      (0x1000000)Insert          = (
        (0x3000000)Type = 5
        (0x3000000)Text = 'E3WVINH001                    '
      )
      (0x1000000)ParserException = (
        (0x3000000)File     = 'F:\build\S210_BP\src\cpi\pwf\cwf\cwfworker.cpp'
        (0x3000000)Line     = 410
        (0x3000000)Function = 'CWFWorker::initializeParse'
        (0x3000000)Type     = ''
        (0x3000000)Name     = ''
        (0x3000000)Label    = ''
        (0x3000000)Text     = 'Message Id not in CWF File'
        (0x3000000)Catalog  = 'WMQIv210'
        (0x3000000)Severity = 3
        (0x3000000)Number   = 5180
        (0x1000000)Insert   = (
          (0x3000000)Type = 2
          (0x3000000)Text = '0'
        )
        (0x1000000)Insert   = (
          (0x3000000)Type = 5
          (0x3000000)Text = 'CWFWorker::initializeParse'
        )
        (0x1000000)Insert   = (
          (0x3000000)Type = 5
          (0x3000000)Text = 'E53RSK40DC001'
        )


7. Has anyone experienced this with the IDOC parser. Is it a bug?
_________________
Applications Architect
Back to top
View user's profile Send private message
Tibor
PostPosted: Wed Jun 15, 2005 2:19 am    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

Hi,

Can you send a detailed trace? Sometimes the exception handling drops an error by stealth...

Otherwise, I personally prefer using a BLOB input node then an RCD node to switch the needed domain.

Tibor
Back to top
View user's profile Send private message
Ramphart
PostPosted: Mon Jun 20, 2005 3:17 am    Post subject: Reply with quote

Disciple

Joined: 21 Jul 2004
Posts: 150
Location: South Africa, JHB

Tibor wrote:
Hi,

Otherwise, I personally prefer using a BLOB input node then an RCD node to switch the needed domain.

Tibor


I only need to BLOB the message if there's an exception. Also, if I BLOB the message on InputNode then use the RCD to switch to the needed domain i'll probably lose out on the Validation associated with the InputNode.

Anyway, here's my message flow and trace files:
InputNode [out terminal] (Msg Domain=IDOC, MsgSet=... MsgFormat=CWF, Validation=Content and Value, Exception ,Deferred) => Trace {Root}
Input Node [catch terminal] => RCD (Message Domain=BLOB, Reset Msg Domain

Trace with a successful message
Timestamps are formatted in local time, 120 minutes past GMT.

2005-06-14 19:06:54.514999 3004 UserTrace BIP4060I: Data '
' from trace node 'IDOC.Blob.Trace4'.
The trace node 'IDOC.Blob.Trace4' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2005-06-14 19:14:18.077999 3256 UserTrace BIP4060I: Data '
' from trace node 'IDOC.Blob.Trace4'.
The trace node 'IDOC.Blob.Trace4' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2005-06-15 09:03:18.733999 2128 UserTrace BIP4060I: Data '' from trace node 'A.Trace4'.
The trace node 'A.Trace4' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2005-06-15 09:03:19.733999 2128 UserTrace BIP4060I: Data '' from trace node 'A.Trace4'.
The trace node 'A.Trace4' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2005-06-15 09:03:20.733999 2128 UserTrace BIP4060I: Data '' from trace node 'A.Trace4'.
The trace node 'A.Trace4' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2005-06-20 13:02:35.467998 3560 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'ramo.AA.TEMP'.
2005-06-20 13:02:35.467998 3560 UserTrace BIP6060I: Parser type 'Properties' created on behalf of node 'ramo.AA.TEMP' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2005-06-20 13:02:35.467998 3560 UserTrace BIP6061I: Parser type 'MQMD' created on behalf of node 'ramo.AA.TEMP' to handle portion of incoming message of length '364' bytes beginning at offset '0'.
Parser type selected based on value 'MQHMD' from previous parser.
2005-06-20 13:02:35.467998 3560 UserTrace BIP6061I: Parser type 'IDOC' created on behalf of node 'ramo.AA.TEMP' to handle portion of incoming message of length '12217' bytes beginning at offset '364'.
Parser type selected based on value 'IDOC' from previous parser.
2005-06-20 13:02:35.467998 3560 UserTrace BIP2538I: Node 'ramo.TraceFile': Evaluating expression 'Root' at (2, 3).
2005-06-20 13:02:35.484001 3560 UserTrace BIP4067I: Message propagated to output terminal for trace node 'ramo.TraceFile'.
The trace node 'ramo.TraceFile' has received a message and is propagating it to any nodes connected to its output terminal.
No user action required.
2005-06-20 13:02:35.625000 3696 UserTrace BIP7082I: Node '': Publishing to destination CLVX36.LIVE.QMGR:SYSTEM.BROKER.ADMIN.REPLY:4366674d677253756233 for user wmqi.
A publication destination is being added to the list of destinations to CLVX36.LIVE.QMGR:SYSTEM.BROKER.ADMIN.REPLY:4366674d677253756233 for user wmqi.
No user action required.

Threads encountered in this trace:
2128 3004 3256 3560 3696


Trace with an unsuccessful message
Timestamps are formatted in local time, 120 minutes past GMT.

2005-06-14 19:06:54.514999 3004 UserTrace BIP4060I: Data '
' from trace node 'IDOC.Blob.Trace4'.
The trace node 'IDOC.Blob.Trace4' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2005-06-14 19:14:18.077999 3256 UserTrace BIP4060I: Data '
' from trace node 'IDOC.Blob.Trace4'.
The trace node 'IDOC.Blob.Trace4' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2005-06-15 09:03:18.733999 2128 UserTrace BIP4060I: Data '' from trace node 'A.Trace4'.
The trace node 'A.Trace4' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2005-06-15 09:03:19.733999 2128 UserTrace BIP4060I: Data '' from trace node 'A.Trace4'.
The trace node 'A.Trace4' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2005-06-15 09:03:20.733999 2128 UserTrace BIP4060I: Data '' from trace node 'A.Trace4'.
The trace node 'A.Trace4' has output the specified trace data.
This is an information message provided by the message flow designer. The user response will be determined by the local environment.
2005-06-20 13:02:35.467998 3560 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'ramo.AA.TEMP'.
2005-06-20 13:02:35.467998 3560 UserTrace BIP6060I: Parser type 'Properties' created on behalf of node 'ramo.AA.TEMP' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2005-06-20 13:02:35.467998 3560 UserTrace BIP6061I: Parser type 'MQMD' created on behalf of node 'ramo.AA.TEMP' to handle portion of incoming message of length '364' bytes beginning at offset '0'.
Parser type selected based on value 'MQHMD' from previous parser.
2005-06-20 13:02:35.467998 3560 UserTrace BIP6061I: Parser type 'IDOC' created on behalf of node 'ramo.AA.TEMP' to handle portion of incoming message of length '12217' bytes beginning at offset '364'.
Parser type selected based on value 'IDOC' from previous parser.
2005-06-20 13:02:35.467998 3560 UserTrace BIP2538I: Node 'ramo.TraceFile': Evaluating expression 'Root' at (2, 3).
2005-06-20 13:02:35.484001 3560 UserTrace BIP4067I: Message propagated to output terminal for trace node 'ramo.TraceFile'.
The trace node 'ramo.TraceFile' has received a message and is propagating it to any nodes connected to its output terminal.
No user action required.
2005-06-20 13:02:35.625000 3696 UserTrace BIP7082I: Node '': Publishing to destination CLVX36.LIVE.QMGR:SYSTEM.BROKER.ADMIN.REPLY:4366674d677253756233 for user wmqi.
A publication destination is being added to the list of destinations to CLVX36.LIVE.QMGR:SYSTEM.BROKER.ADMIN.REPLY:4366674d677253756233 for user wmqi.
No user action required.
2005-06-20 13:05:52.484001 3560 UserTrace BIP2632I: Message received and propagated to 'out' terminal of MQ input node 'ramo.AA.TEMP'.
2005-06-20 13:05:52.484001 3560 UserTrace BIP6060I: Parser type 'Properties' created on behalf of node 'ramo.AA.TEMP' to handle portion of incoming message of length 0 bytes beginning at offset '0'.
2005-06-20 13:05:52.484001 3560 UserTrace BIP6061I: Parser type 'MQMD' created on behalf of node 'ramo.AA.TEMP' to handle portion of incoming message of length '364' bytes beginning at offset '0'.
Parser type selected based on value 'MQHMD' from previous parser.
2005-06-20 13:05:52.484001 3560 UserTrace BIP2231E: Error detected whilst processing a message 'ramo.AA.TEMP'.
The message broker detected an error whilst processing a message in node 'ramo.AA.TEMP'. The message has been augmented with an exception list and has been propagated
to the node's failure terminal for further processing.
See the following messages for details of the error.
2005-06-20 13:05:52.484001 3560 RecoverableException BIP2230E: Error detected whilst processing a message in node 'ramo.TraceFile'.
The message broker detected an error whilst processing a message in node 'ramo.TraceFile'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error.
2005-06-20 13:05:52.484001 3560 ParserException BIP5902W: An error occurred in parser 'Root' whilst parsing the field named 'IDOC' on behalf of node 'ramo.AA.TEMP'.
The data being parsed was '4d442020020000000000000008000000ffffffff0000000022020000b501000020202020202020200000000000000000414d5120434c565833362e4c4956452e6f78b64220002e010000000000000000000000000000000
0000000000000000000000000202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020434c565833362e4c4956452e514d47522020202020202020202020202020202020202020202020202
020202020202020776d7169202020202020202016010515000000f17a11f1236d425f0519427feb03000000000000000000000b20202020202020202020202020202020202020'.
This message gives the name of the field in the parser that was being parsed at the time the error occurred.
You should check for other messages issued with this one for the full context of the error.
2005-06-20 13:05:52.500000 3560 ParserException BIP6118E: The remaining bitstream is too small to contain the indicated structure.
The bitstream, as presented to the 'IDOC' parser, is too small to contain the 'IDOC' structure. The length of this structure as given in the structure header is '12216'.
The message appears to have been truncated.
Check with the support group responsible for the parser in question.
2005-06-20 13:05:52.500000 3560 Error BIP2232E: Error detected whilst handling a previous error in node 'ramo.rcdBLOB'.
The message broker has detected an error in node 'ramo.rcdBLOB' whilst handling a previous error.
See the following messages for details of the exception list associated with the original error. Thereafter messages will be associated with the new error.
2005-06-20 13:05:52.500000 3560 RecoverableException BIP2230E: Error detected whilst processing a message in node 'ramo.TraceFile'.
The message broker detected an error whilst processing a message in node 'ramo.TraceFile'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error.
2005-06-20 13:05:52.500000 3560 ParserException BIP5902W: An error occurred in parser 'Root' whilst parsing the field named 'IDOC' on behalf of node 'ramo.AA.TEMP'. The data being parsed was
'4d442020020000000000000008000000ffffffff0000000022020000b501000020202020202020200000000000000000414d5120434c565833362e4c4956452e6f78b64220002e010000000000000000000000000000000000000000000000000000000020
2020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020434c565833362e4c4956452e514d47522020202020202020202020202020202020202020202020202020202020202020776d716920202
020202020202020202020202020202020202020202020'.
This message gives the name of the field in the parser that was being parsed at the time the error occurred.
You should check for other messages issued with this one for the full context of the error.
2005-06-20 13:05:52.500000 3560 ParserException BIP6118E: The remaining bitstream is too small to contain the indicated structure.
The bitstream, as presented to the 'IDOC' parser, is too small to contain the 'IDOC' structure. The length of this structure as given in the structure header is '12216'.
The message appears to have been truncated.
Check with the support group responsible for the parser in question.
2005-06-20 13:05:52.500000 3560 Error BIP2628E: Exception condition detected on input node 'ramo.AA.TEMP'.
The input node 'ramo.AA.TEMP' detected an error whilst processing a message. The message flow has been rolled-back and, if the message was being processed in a unit of work,
it will remain on the input queue to be processed again. Following messages will indicate the cause of this exception.
Check the error messages which follow to determine why the exception was generated, and take action as described by those messages.
2005-06-20 13:05:52.500000 3560 RecoverableException BIP2230E: Error detected whilst processing a message in node 'ramo.TraceFile'.
The message broker detected an error whilst processing a message in node 'ramo.TraceFile'. An exception has been thrown to cut short the processing of the message.
See the following messages for details of the error.
2005-06-20 13:05:52.500000 3560 ParserException BIP5902W: An error occurred in parser 'Root' whilst parsing the field named 'IDOC' on behalf of node 'ramo.AA.TEMP'.
The data being parsed was '4d442020020000000000000008000000ffffffff0000000022020000b501000020202020202020200000000000000000414d5120434c565833362e4c4956452e6f78b64220002e0100000000000000000000000000000000
000000000000000000000000202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020202020434c565833362e4c4956452e514d47522020202020202020202020202020202020202020202020202020
202020202020776d7169202020202020202016010515000000f17a11f1236d425f0519427feb03000000000000000000000b20202020202020202020202020202020202020202020202020202020202020200b000000636b735c696830335f5246485574696c
5c7266687574696c2e6578653230303530363230313130353532343820202020000303'.
This message gives the name of the field in the parser that was being parsed at the time the error occurred.
You should check for other messages issued with this one for the full context of the error.
2005-06-20 13:05:52.514999 3560 ParserException BIP6118E: The remaining bitstream is too small to contain the indicated structure.
The bitstream, as presented to the 'IDOC' parser, is too small to contain the 'IDOC' structure. The length of this structure as given in the structure header is '12216'.
The message appears to have been truncated.
Check with the support group responsible for the parser in question.
2005-06-20 13:05:53.514999 3560 UserTrace BIP2638I: The MQ output node 'ramo.AA.TEMP' attempted to write a message to the specified queue 'HUBCLV.DLQ' connected to queue manager 'CLVX36.LIVE.QMGR'.
The MQCC was 0 and the MQRC was 0.
2005-06-20 13:05:53.514999 3560 UserTrace BIP2615I: The MQSeries input node 'ramo.AA.TEMP' has backed out the message to the backout requeue or the dead letter queue.
Message backout processing has been invoked, and the message has either been backed out by being written to the backout requeue or dead letter queue, as determined by
the MQSeries queue manager and queue configuration.
No user action required.

Threads encountered in this trace:
2128 3004 3256 3560 3696

Notes
-The message propagates down the InputNode Catch Terminal but fails when i'm trying to BLOB it on RCD. This is just insane I'd think.
-Anyway, I need to BLOB it because eventually ill have a SUBFLOW error routine wired to the catch terminal which will BLOB the errenuous message and log it to a database with the {ExceptionList}.
-The RCD to BLOB [when a message fails] works great with all the other Domains.
-Please assist me guys.
_________________
Applications Architect
Back to top
View user's profile Send private message
Tibor
PostPosted: Mon Jun 20, 2005 7:05 am    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

Ramphart wrote:
I only need to BLOB the message if there's an exception. Also, if I BLOB the message on InputNode then use the RCD to switch to the needed domain i'll probably lose out on the Validation associated with the InputNode.

You don't lose the validation when using BLOB input. The documentation writes about it:
Quote:
You can use validation options to validate the following messages:

* Input messages that are received by the MQInput node
* Output messages that are created by the Compute node
* Output messages that are created by the Mapping node


However, I don't understand why WMQI writes *this* trace messages, because the hex dump is not an IDOC header, but an MQMD header:
Code:
0000  4D 44 20 20 02 00 00 00-00 00 00 00 08 00 00 00   MD  ............
0010  FF FF FF FF 00 00 00 00-22 02 00 00 B5 01 00 00   ........".......
0020  20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00           ........
0030  41 4D 51 20 43 4C 56 58-33 36 2E 4C 49 56 45 2E   AMQ CLVX36.LIVE.
0040  6F 78 B6 42 20 00 2E 01-00 00 00 00 00 00 00 00   ox.B ...........
0050  00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00   ................
0060  00 00 00 00 20 20 20 20-20 20 20 20 20 20 20 20   ....
0070  20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20
0080  20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20
0090  20 20 20 20 43 4C 56 58-33 36 2E 4C 49 56 45 2E       CLVX36.LIVE.
00A0  51 4D 47 52 20 20 20 20-20 20 20 20 20 20 20 20   QMGR
00B0  20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20
00C0  20 20 20 20 77 6D 71 69-20 20 20 20 20 20 20 20       wmqi
00D0  16 01 05 15 00 00 00 F1-7A 11 F1 23 6D 42 5F 05   ........z..#mB_.
00E0  19 42 7F EB 03 00 00 00-00 00 00 00 00 00 00 0B   .B..............
00F0  20 20 20 20 20 20 20 20-20 20 20 20 20 20 20 20
0100  20 20 20


How does your WMQI and SAP build the communication? (There is no SAPH, that's why this shouldn't be an R3Link traffic.)

Tibor
Back to top
View user's profile Send private message
Ramphart
PostPosted: Mon Jun 20, 2005 1:20 pm    Post subject: Reply with quote

Disciple

Joined: 21 Jul 2004
Posts: 150
Location: South Africa, JHB

Tibor wrote:
You don't lose the validation when using BLOB input. The documentation writes about it:You can use validation options to validate the following messages:
* Input messages that are received by the MQInput node
* Output messages that are created by the Compute node
* Output messages that are created by the Mapping node


- I understand that the validation is not lost when using BLOB on InputNode, but then the validation is against BLOB and not against the MRM definition. Also, if I BLOB it on InputNode then RCD it to MRM I will then lose the validation that I would have had if I had MRM on the InputNode [with validation switch on].

Tibor wrote:

However, I don't understand why WMQI writes *this* trace messages, because the hex dump is not an IDOC header, but an MQMD header:
[code]0000 4D 44 20 20 02 00 00 00-00 00 00 00 08 00 00 00 MD ............
0010 FF FF FF FF 00 00 00 00-22 02 00 00 B5 01 00 00 ........".......
0020 20 20 20 20 20 20 20 20-00 00 00 00 00 00 00 00 ........
0030 41 4D 51 20 43 4C 56 58-33 36 2E 4C 49 56 45 2E AMQ CLVX36.LIVE.


The SAPH header will be present when the message comes directly from SAP. You can do without it though [if you want] when you put the message on the queue as MQSTR [with RHFUtil say]. It's like having an RFH2 or no RFH2. As long as you indicate to the parser what follows all is fine.

My problem is really that my generic error handler [a subflow] logs the errenuous message [original data that was put onto the Queue] to a database table in one column and the exceptionlist to another column. Since the subflow have no idea what came onto a queue in the main flow [which domain etc.] I simply BLOB it and log it. This operation works fine for ALL the Domains when messages fail but falls over when a message fails using the IDOC parser. Surely this is something to do with the way the IDOC parser raise the error when is rolls back to the InputNode.

This is whats odd about the IDOC parser:
1. When the InputNode is for instance the MRM parser and I put, say a csv message and map this to an IDOC and gets a failure, the message rolls back to the InputNode and the SubFlow error handler works fine.

2. When the InputNode is the IDOC parser and I map this to a csv message and gets a failure the message rolls back to the InputNode and the SubFlow error handler FALLS over when I try to BLOB the input.

What now
_________________
Applications Architect
Back to top
View user's profile Send private message
jefflowrey
PostPosted: Mon Jun 20, 2005 5:27 pm    Post subject: Reply with quote

Grand Poobah

Joined: 16 Oct 2002
Posts: 19981

Ramphart wrote:
but then the validation is against BLOB and not against the MRM definition.


This is, I think, why Compute nodes have Validation properties.
_________________
I am *not* the model of the modern major general.
Back to top
View user's profile Send private message
Tibor
PostPosted: Mon Jun 20, 2005 8:52 pm    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

Ramphart wrote:
This is whats odd about the IDOC parser...


Perhaps, it's coming from the working of the IDOC parser, because this is a two-level parser:
- #1 parsing DC and DD header
- #2 parsing DD data through MRM parser - depend on DD.segnam

Tibor
Back to top
View user's profile Send private message
Ramphart
PostPosted: Tue Jun 21, 2005 1:31 am    Post subject: Reply with quote

Disciple

Joined: 21 Jul 2004
Posts: 150
Location: South Africa, JHB

Tibor wrote:
Ramphart wrote:
This is whats odd about the IDOC parser...


Perhaps, it's coming from the working of the IDOC parser, because this is a two-level parser:
- #1 parsing DC and DD header
- #2 parsing DD data through MRM parser - depend on DD.segnam

Tibor


I think it definitely comes from #1 parsing DC and DD header. Question now is, how do we fix this? Is it a bug?
_________________
Applications Architect
Back to top
View user's profile Send private message
Tibor
PostPosted: Tue Jun 21, 2005 6:06 am    Post subject: Reply with quote

Grand Master

Joined: 20 May 2001
Posts: 1033
Location: Hungary

Quote:
Question now is, how do we fix this? Is it a bug?


Perhaps a bug, IMHO doesn't matter... because in this case you should have to do a workaround. I can repeat my suggestion (very simple)
- MQInput, Domain=BLOB
- TryCatch
- RCD to IDOC
- other...

Tibor
Back to top
View user's profile Send private message
Ramphart
PostPosted: Tue Jun 21, 2005 11:39 am    Post subject: Reply with quote

Disciple

Joined: 21 Jul 2004
Posts: 150
Location: South Africa, JHB

Tibor wrote:

Perhaps a bug, IMHO doesn't matter... because in this case you should have to do a workaround. I can repeat my suggestion (very simple)
- MQInput, Domain=BLOB
- TryCatch
- RCD to IDOC
- other...

Tibor


Since you suggest that I use BLOB on inputNode I won't need the TryCatch.
If I get an exception after RCD to IDOC it will roll back the inputNode (BLOB domain inititally) so my SubFlow error handler will work just fine.
Thx for all your advice.
_________________
Applications Architect
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 » IDOC Parser (error handling issues)
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.