我有一个监听器bean,它调用MDBs onMessage方法中的会话bean方法。如果发生异常,例如IllegalStateException(我抛出)或NPE,那么JBoss会继续记录异常,并且还会继续重试以传递相同的消息,再次发送垃圾邮件,然后将消息发送到DLQ,并再次调用onMessage再次失败......疯狂。
有没有办法阻止这个?是否有MDB的配置属性,告诉我,如果onMessage中发生任何异常(如果onMessage没有返回)重试X次,那么就开始尝试了!有吗?
答案 0 :(得分:0)
您使用的是侦听端口还是激活规范?我不使用JBoss,我使用WebSphere,但我发现在WebSphere的侦听器端口区域下,您可以设置最大重试次数。也许您的管理控制台中有一个位置可以更改日志记录级别,因此它不会向您发送垃圾邮件?最后,我会在您的邮件头中查找名为retryCount的属性(如果没有,则创建一个)。然后使用它并在bean中检查它。如果它读取它并且你已经失败N次,那么自动转发到DLQ而不用JBoss为你做。可能会让你头疼。