如何处理 Container Managed、Auto Acknowledge、Transaction Not Supported、MDB exception for message redelivery

How to handle Container Managed,Auto Acknowledge, Transaction Not Supported, MDB exception for message redelivery

我有一个 MDB - EJB 2.1,WebSphere 7 版本

容器管理和自动确认

标记为Not Supported

的交易

现在如何处理异常,以便在异常期间保留消息并在以后重新传送?

我试图从我的 MDB onMessage 方法中的 catch 块中抛出运行时异常。但这似乎停止了意外的 MDB 侦听器。

我无法调用 context.setRollBackOnly(),因为没有交易。

RuntimeException应该没问题。检查一下 Message-driven beans - transaction support。如果您的 Listener 停止,那么您可能 Maximum retries 设置为 0。将其设置为更高的值。