我们在单独的虚拟Windows服务器2008 R2 6.1上使用Tibco 5.11 BW和EMS 8.0.0.9
周期性地,来自随机tibco BW程序包的1-2个月随机tibco BW过程大约挂在“ JMS队列发送者”活动上。我们大约有80个Tibco BW软件包,每个软件包中有数百个流程。大多数过程内部都有非常简单的逻辑。进程正在使用Tibco JMS传输。
发生问题时,它不会在tra.log或application.log中引发任何错误。我仅在Tibco管理员中看到当前活动为“ JMS Queue Sender”的挂起线程。在“ JMS队列发送器”活动开始挂起之后,程序包中的所有过程也开始挂起,最终程序包完全没有响应。重新启动程序包即可解决问题。
“ JMS Sender活动”正在使用“ destinationQueue”中的TMP队列。可以从Java使用tibjms.jar-7.0.1.jar调用服务,或者从另一个tibco BW服务使用“ JMS Queue Requestor”调用服务。
这是挂在“ JMS队列发送者”上的典型服务示例
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 Sender活动在重新连接到EMS服务器时陷入了死锁状态。
5.13.0:BW-16413使用相同连接资源的JMS接收器和JMS发送器在重新连接到EMS服务器时陷入了死锁。
不幸的是,我在release notes for 5.14 BW中仅看到问题标题。我尚未在公共场合找到问题的详细描述
该问题最终通过将BW迁移到版本5.14得以解决。