We are implementing the RetaliPack for IIB, version 184.108.40.206.
Messages arrive via HTTPInput node in the BLOB data. The input message is parsed with DFDL.
If there is an error in the parsing, the failure terminal leads to a java compute node that sends an exception message to an error queue.
The exception message wraps the input message which consists of the MQRFH2C and DFDL elements:
// copy the input tree in to the Exception/InputMessage element MbElement inputMessage = (MbElement)inAssembly.getMessage().getRootElement(); MbElement inputMessage_Element = exception_Element.createElementAsLastChild (MbElement.TYPE_NAME, "InputMessage", null ); inputMessage_Element.copyElementTree( inputMessage ) ;
It would be useful if the original binary data BLOB were also included in this exception message, but I don't know how to do this. I would appreciate any help to point me in the right direction.
Update: After poking around a bit, it looks like one solution could be to change the input node domain from DFDL to BLOB, introduce a compute node to save the BLOB in the Environment, then pass the message to a Reset Content Descriptor node which would do the DFDL parsing. In the java compute node that catches the exception, I can append the BLOB from the Environment to the InputMessage.
I will give this a try but still welcome any advice.