Reputation: 988
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
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
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
Reputation: 988
I found the error, the problem is that I was using Publish instead of Routing, after I changed everything worked.
Upvotes: 2