我有一个简单的JMS应用程序部署在AIX服务器上的OC4J中,在我的应用程序中我正在侦听某些队列并发送到部署在AS400服务器下的Websphere MQ上的其他队列。Websphere MQ使用JMS,闭合连接停留在MQ
的问题是,我对这些队列连接将终止/时,它保持空闲一段时间与错误MQJMS1016
关闭(这是没有问题的),并且这种情况发生时,我尝试恢复连接,并将其工作,但是,旧的连接卡在MQ,并不会终止,直到手动终止。
恢复代码去如下:
public void recover() {
cleanup();
init();
}
public void cleanup(){
if (session != null) {
try {
session .close();
} catch (JMSException e) {
}
}
if (connection != null) {
try {
connection.close();
} catch (JMSException e) {
}
}
}
public void init(){
// typical initialization of the connection, session and queue...
}
但问题是什么,它在哪里“卡住” - 在session.close()? – nos 2009-09-01 19:43:15
问题是,在Websphere MQ方面,旧的监听器/制作者被卡住了,所以我将会有额外的工作似乎连接到MQ。 恢复代码正常运行 – 2009-09-01 20:17:30