Reputation: 157
I am trying to fetch messages from IBM Websphere MQ using Oracle Service Bus. I have enabled "XA" connection factory in OSB and checked the "transaction required" check box. But when I checked the "Same transaction For Response" check box , I'm getting "pipelineException".
anyone aware about this issue?? is there any guideline or document that describe the full process?(not sure am I on right track.)
Upvotes: 0
Views: 529
Reputation: 71
OSB is constructed in such a way that the request pipeline and the response pipeline use different threads. When is say different threads, the thread executing the request pipeline is completed as soon as it reaches the end of the request pipeline. A new thread is allocated for executing the response pipeline by weblogic.
Now coming to the "Same transaction For Response" option, this simply means that the request and the response pipeline should use the same thread and not new threads.
The "Same transaction For Response" option is supposed to be used when there is a very strict error monitoring (mostly in synchronous cases). for example if the flow is as below,
MQ Client > OSB Application <> HTTP backend / Synchronous JMS
then,
(in a scenario with "Same transaction For Response" not enabled) - if
the synchronous backend does not send a response and if there is an
exception, the exception is not propagated to the OSB response
pipeline, since the request thread has completed and it doesnt matter
what the response was after completion. so OSB proceeds as if nothing
happened with the backend.
(in a scenario with "Same transaction For Response" enabled) - if the backend throws any errors as mentioned in the previous scenario, then the request thread which is waiting, captures the errors and then the exception is thrown to the immediate error handler that it can find. (Stage error handler, proxy error handler, system error handler - in the same order).
now coming to the error that you have highlighted and with the option enabled, i guess it should be some error that has been sent from your backend. please check what is the response that you have got from your downstream and correct it accordingly.
Upvotes: 1