【问题标题】:OSB - JMS State StringOSB - JMS 状态字符串
【发布时间】:2018-04-10 20:42:53
【问题描述】:

我有一个代理服务调用将消息放入队列的业务服务,我的问题是 Weblogic 控制台上的状态字符串仍然是“发送事务”而不是“可见”,这导致我的 BAM 消费者无法从队列中取出这条消息。是否需要对代理或业务服务进行任何配置才能更改此状态?我还在代理服务上检查了所需的事务,以保证仅在成功的情况下删除消息。

【问题讨论】:

    标签: jms weblogic osb


    【解决方案1】:

    假设您在 11g 上引用“代理”(而不是管道)调用业务服务。 您确定代理服务正在完成操作而没有错误吗? 如果您使用 XA JMS 连接工厂推送到 JMS 队列,您确定 XA 事务正在完全提交吗?日志/weblogic JTA 监控选项卡可能有线索。

    或者,首先尝试使用非 XA 连接工厂,看看是否可行。

    【讨论】:

    • 您确定代理服务正在完成操作而没有错误吗?是的,因为消息已从源队列中删除,并且在调试时我可以看到消息没有通过错误处理程序传递。您确定 XA 事务正在完全提交吗?是的,我为任何错误配置了一个错误目标队列。
    • 使用业务服务手动插入消息时会发生什么?要回答您的问题,除了持久成功的 txn 完成之外,您不需要做任何明确的事情来使消息可见。但是,如果您的 JMS 目标位于不同的域中,或者您调用 JMS URL 的方式(例如不正确的主机名),XA txn 可能无法正确提交
    • 当我手动插入消息时,状态字符串显示“可见”并且一切正常。是的,我的目标队列位于不同的域上。我使用的是 SAF,但我在不同域中使用不同版本的 weblogic 产品时遇到了一些问题,这就是我使用 OSB 发送消息的原因。
    • 好的。手动插入必须专门通过“业务服务”测试控制台进行,而不是通过 Web 逻辑控制台。如果失败,那么您可能需要确保正确设置域间信任。您可能会在双方的服务器日志中看到有关您的 txn 可能无法完全提交的线索。
    • 如果您通过首先尝试非 XA 连接工厂来排除其他问题,那么您可能需要应用它来让 XA 工作:docs.oracle.com/middleware/1213/wls/WLJTA/…
    猜你喜欢
    • 2017-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 1970-01-01
    • 2014-06-26
    • 2014-08-03
    • 2020-11-27
    相关资源
    最近更新 更多