0

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

4

2 回答 2

0

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

endpointExceptionRedeliveryAttempts

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

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

于 2011-04-06T22:25:53.127 回答
0

您是否看过 在 MQ 系列中配置“重试延迟”

捕获错误,休眠,然后重新抛出它呢?

于 2011-04-06T22:14:25.553 回答