我们在单独的虚拟 Windows 服务器 2008 R2 6.1 上使用Tibco 5.11 BW和EMS 8.0.0.9
大约每 1-2 个月,来自随机 tibco BW 包的随机 tibco BW 进程定期挂起“JMS 队列发件人”活动。我们有大约 80 个 Tibco BW 包和每个包中的几百个流程。大多数流程内部都有非常简单的逻辑。这些进程使用 Tibco JMS 传输。
问题发生时它不会在 tra.log 或 application.log 中引发任何错误。我只在 Tibco 管理员中看到当前活动“JMS Queue Sender”的挂起线程。在“JMS Queue Sender”活动开始挂起包中的所有进程之后,包也开始挂起,最终包根本没有响应。包重启解决了这个问题。
“JMS Sender 活动”正在“destinationQueue”中使用 TMP 队列。可以使用 tibjms.jar-7.0.1.jar 从 java 调用这些服务,也可以使用“JMS Queue Requestor”从另一个 tibco BW 服务调用这些服务。
这是我们挂在“JMS Queue sender”上的典型服务示例
tibco 论坛中描述的类似问题,但没有解决方案 https://community.tibco.com/questions/jms-queue-sender-hung-state
“JMS Sender 活动”挂起可能与 ReplayTo 中设置的临时队列有关。作为解决方法,我们将临时队列更改为解决问题的静态队列。
问题是在 ReplayTo 中出现临时队列的情况下,是什么导致“JMS Sender 活动”挂起?
UPD: 可能与
5.14.0:BW-17137使用相同连接资源的 JMS 接收器和 JMS 发送器活动在重新连接到 EMS 服务器时陷入死锁情况。
5.13.0:BW-16413使用相同连接资源的 JMS 接收器和 JMS 发送器在重新连接到 EMS 服务器时陷入死锁。
不幸的是,我在5.14 BW 的发行说明中只看到问题标题 。我没有在公开场合找到问题的详细描述