如何从GlassFish中消息驱动Bean中的死锁中恢复?

时间:2011-04-05 05:23:42

标签: glassfish deadlock message-driven-bean

我在GlassFish中的MDB池上接收消息时遇到死锁情况。如果我收到同时尝试更新同一组行的多条消息,则MDB会抛出LockAcquisitionException。不幸的是,GlassFish JMS提供程序立即重新传递消息,导致再次发生相同的异常。我希望在一段时间后将JMS提供程序配置为重新启动,但这似乎不受支持。关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:0)

你看过了吗? Configuring a 'retry delay' in MQ Series

如何捕捉错误,睡觉,然后重新投掷它?

答案 1 :(得分:0)

以下是有关配置选项的一些Oracle文档的链接: http://download.oracle.com/docs/cd/E19798-01/821-1794/aeooq/index.html

endpointExceptionRedeliveryAttempts

这将允许您捕获错误。然后,您可以在Fault / RME端点上实现MBean并添加人为延迟

但目前似乎没有办法在GlassFish中进行重试延迟。

相关问题