当我在队列中放入消息并且JMS服务器关闭时,我在尝试捕获OSB上的错误时遇到了一些麻烦,我有一个代理服务调用配置了jms的业务服务。 我的代理服务已经启用了事务处理和响应相同事务。
管理员日志中的错误:
目的地无法到达;嵌套异常是: java.net.ConnectException:连接被拒绝:连接;不可用 路由器到目的地
但异常并没有抓住ErrorHandler :(
答案 0 :(得分:2)
我发现错误,问题是我改变了所有工作后,我使用的是Publish而不是Routing。
答案 1 :(得分:1)
是的,正确的,发布线程就像火和忘记(完全异步),而Route或ServiceCallout将锁定ErrorHandler中的异常
答案 2 :(得分:1)
发布是一劳永逸的操作,默认情况下不等待答案。这是因为默认的QualityOfService = BestEffort用于发布操作。您可以通过使用RoutingOptions块并设置QualityOfService = ExactlyOnce来更改它。然后,OSB将等待操作执行,因此也将能够捕获潜在的错误。