您应该在客户端代码中实现javax.jms.ExceptionListener。您将需要一个名为onException的方法。当客户端的连接断开时,您应该得到一个JMSException,并且此方法将被自动调用。您唯一需要注意的是,如果您有意与JBossMQ断开连接-
这也会引发异常。
一些代码可能看起来像这样:
public void onException (JMSException jsme) { if (!closeRequested) { this.disconnect(); this.establishConnection(connectionProps, queueName, uname, pword, clientID, messageSelector); } else { //Client requested close so do not try to reconnect } }
然后,在“建立连接”代码中,将实现一个
while(!initialized)在其中包含try / catch
的构造。在确定已正确连接并订阅之前,请留在while循环中,以捕获所有JMS / Naming / etc。例外。
我们在JBossMQ中使用这种方法已有多年,并且效果很好。d跳JBossMQ或失去网络连接后,我们的JMS客户端不重新连接就不会有问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)