我有一個簡單的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