OSB - JMS - 错误处理程序

OSB - JMS - Error Handler

当我将消息放入队列并且 JMS 服务器关闭时,我在尝试捕获 OSB 上的错误时遇到了一些麻烦,我有一个代理服务调用配置了 jms 的业务服务。 我的代理服务已经启用了 Transaction Required 和 Same Transaction For Response。

管理日志中的错误:

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

但是 ErrorHandler 没有捕捉到异常:(

我发现了错误,问题是我使用的是发布而不是路由,在我更改后一切正常。

是的,正确的,发布线程就像发射后忘记(完全异步),而 Route 或 ServiceCallout 将锁定 ErrorHandler 中的异常

发布即发即弃,默认情况下无需等待答复。这是因为发布操作的默认 QualityOfService=BestEffort。您可以通过使用 RoutingOptions 块并设置 QualityOfService=ExactlyOnce 来更改它。然后 OSB 将等待操作执行,因此也将能够捕获潜在的错误。