OSB - JMS - Error Handler

I'm having some troubles trying to catch an error on OSB when I put a message on queue and JMS Server is down, I have a proxy service calling a business service that have a jms configured. My proxy service already have Transaction Required and Same Transaction For Response enabled.

The error on Admin log:

Destination unreachable; nested exception is: java.net.ConnectException: Connection refused: connect; No available router to destination

But the exception don't catch on ErrorHandler :(

Upvotes: 0

Views: 691

Answers (3)

Arkadiusz Przechodzki
Arkadiusz Przechodzki

Reputation: 854

Publish is fire-and-forget, by default with no wait for an answer. This comes from the fact, that default QualityOfService=BestEffort for publish action. You can change that, by using RoutingOptions block, and setting QualityOfService=ExactlyOnce. OSB will then wait for action to execute, hence will be also able to catch potential errors.

Upvotes: 1

Debapriya Biswas
Debapriya Biswas

Reputation: 1349

Yes that correct , Publish thread is like fire and forget(completely asynchronous) while a Route or ServiceCallout will latch on to the exception in ErrorHandler

Upvotes: 1

I found the error, the problem is that I was using Publish instead of Routing, after I changed everything worked.

Upvotes: 2

Related Questions