我们的结构如下: BaseQueue - >消息被复制到复制队列中(这是我们读取的地方)
与Queuemanager / Queue的连接是通过wmq.jmsra.rar资源适配器完成的。
所以我只想读取队列中的消息。我不想发回任何回复。
因此,我实现了一个MessageListener并通过ejb-jar.xml文件配置了队列。
这一切都运行正常,但现在我想实现一个ExceptionListener来处理连接丢失等。
我认为只需像这样实现ExceptionListener接口就可以了:
public class MdB implements MessageListener, ExceptionListener {
@Override
public void onMessage(Message arg0) {
...
}
@Override
public void onException(JMSException arg0) {
...
}
}
但似乎这还不够,因为onException方法永远不会从资源适配器调用。
任何人都可以帮助我吗?也许它足以获得资源适配器使用的连接并为此对象设置异常监听器,但我找不到获取连接对象的方法。
由于
答案 0 :(得分:0)
您还需要通过在连接对象上调用setExceptionListener
来为连接注册异常监听器。
connection.setExceptionListener(this); // class implementing the ExceptionListener interface
补充阅读