如果JMS事务既不是Committed也不是Rolled,那么消息会发生什么

时间:2010-12-16 20:11:44

标签: java jms

请帮帮我,我是JMS的新手。如果JMS事务既不是Committed也不是Rollback,那么消息会发生什么?

2 个答案:

答案 0 :(得分:1)

确切的行为取决于经纪人。我专注于WebSphere MQ,所以我将用这些术语解释它。如果您告诉我们您正在使用哪种经纪人,也许精通该特定经纪人的人会作出回应。

使用WMQ,限制因素是事务日志和应用程序的生命周期。如果应用程序因未完成的事务而死亡,则会回滚它。除此之外,事务存在于日志中,直到日志空间耗尽,此时事务被回滚,应用程序获得原因代码以指示错误的性质。如果没有其他应用程序写入事务日志,则事务可以无限期地存在。如果QMgr繁忙,则未提交的事务可能只持续几秒钟,具体取决于日志范围和大小。

WMQ没有内存泄漏类型的影响。有一些可调参数,例如未提交消息的数量上限,可防止内存,句柄和其他资源失控。

答案 1 :(得分:0)

事务超时时间结束后,您的jms事务将被回滚。因此,没有交易保持在持有头寸。