Wednesday, 26 November 2014

OSB MQTransport and MQ queue always publishes the messages in bytes and not in Text

One of the issue I got recently while publishing data from OSB 11g to MQ Queue which always publishes message in Byte format.

Using HermesJMS Queue Browser for MQ queue basically was able to see messages in byte format.
Though My BusinessService(Messaging Service>>Request Message Type (Text)) for publishing the messages on the MQ queue always publishes the messages in bytes and not in Text. Even when I tried to change it to text i still get the messages in the bytes format.

Reason:-
mq transport is not able to parse JMS headers . if u sending message from any jms client like Hermes it would have jms headers with the message and mq transport would fail to validate the payload

Workaround:-
I added the below RFH2 Headers as part of mq Transport Header using Transport Header activity in OSB,so basically Hermes JMS was able to intercept the RFH2 headers and display the payload in text format in Queue Browser.

'<RFH2Header>
<mcd><Msd>jms_text</Msd></mcd>
</RFH2Header>'

Split Join behavior in OSB or FlowN behavior in BPEL

Recently i encountered with one issue while working through split join in OSB. Declared the variable as global and used in for each for parallel processing which started behaving abruptly. Request was splitting abruptly.

Always be sure to declare the variables as local to for-each or FlowN. Which will give you the values specific to thread generated at runtime.

Happy testing parallel flows !!!