Interesting behavior writing disassembler component

Editorial architecture visual showing BizTalk SAP adapter connectivity, RFC gateway, load-balanced SAP servers, and retry paths

Have to write a disassembler component to wrap flat file disassembler to disassemble incoming SAP flat file then validate the disassembled XML upon BRE, if validated then promote some properties dynamically and pump individual validated messages to the output stream.

I followed the standard template, using a Queue instance to hold the output messages in the Disassemble() then dequeue it in the GetNext(). The disassemble works no problem, however, the message context seems to messed up. My debugger reading context property in GetNext is sometimes different than the original value set by Disassemble.

In the end, I declare another queue for the context property values, I then only queue up the message itself, promoting the context in the GetNext() rather in the Disassemble().

Next step

Need this reviewed in a real system?

Use the article as a starting point, then bring the actual decision, constraints, and failure paths into an architecture review.

Join the discussion

Sign in to comment. Signed-in comments appear immediately.

Join the discussion