我使用javax.jms.Connection發送&從JBoss501接收jms消息。我也使用Connection.setExceptionListener()。我想知道是否需要在(Conneciton.start())啓動連接之前設置異常偵聽器?任何意見都可以重現JBoss連接異常,以確認是否調用異常偵聽器。JMS ExceptionListener
1
A
回答
0
從規格:
如果JMS提供者檢測到一個Connection對象一個嚴重的問題,它會通知Connection對象的的ExceptionListener,如果已註冊。它通過調用偵聽器的onException方法來完成此操作,並向它傳遞一個描述問題的JMSException參數。
異常偵聽器允許客戶端異步通知問題。有些連接只會使用消息,因此他們無法通過其他方式瞭解連接失敗。
請記住,這裏有供應商特定實施的地方,介紹如何處理異常。一些供應商儘可能「修復」這種情況。
現在,關於在設置異常監聽器之前或之後啓動連接... 在開始連接之前,始終設置異常偵聽器。
約重現我想你可以
- 啓動消費,connection.start應該運行。並等待消息。
- 立即關閉jboss。
- 重新啓動jboss。
我也知道,使用Eclipse或其他開發工具將幫助你在調試模式下啓動,您也可以在作爲調試器顯示您地位的任何特定的時間剛剛中止了JBoss服務器,並再次重新啓動它。
1
使用Jboss 5.0.1,即使在開始連接後,設置異常偵聽器也能正常工作。正如「MrSimpleMind」所提到的,異常監聽器在啓動連接之前可以更好地服務 - 事實上,只要從ConnectionFactory創建連接,它就是最好的。
的異常監聽器是有效的,即使連接未啓動 - 在JBoss中501
//Main
try {
connection = getConnection();
connection.setExceptionListener(new MyExceptionListener());
//Exception listener is effective even before connection is started.
//connection.start();
while(true){
try {
Thread.sleep(1000 * 5);
Log.l("Kill the JMS provider any time now. !! Observe if the JMS listener works.");
} catch (InterruptedException e) {
//do nothing.
}
}
} catch (NamingException e) {
e.printStackTrace();
} catch (JMSException e) {
e.printStackTrace();
}
//Exception Listener
public class MyExceptionListener implements ExceptionListener {
@Override
public void onException(JMSException e) {
Log.l("Exception listener invoked");
}
}
要重現其中的ExceptionListener被觸發/調用場景的情況下,我使用JBoss的管理控制檯並使用由Jboss mgmt控制檯公開的mx bean停止ConnectionFactory。
相關問題
- 1. 工作燈服務器6.2 JMS適配器的javax/JMS /的ExceptionListener
- 2. 如何創建一個active-mq ExceptionListener?
- 3. IBM.XMS ExceptionListener沒有觸發
- 4. 在ExceptionListener中獲取路由選項
- 5. 自定義ExceptionListener不捕獲ConnectionException
- 6. IBM JMS連接
- 7. 如何使用Spring JMS發佈JMS主題?
- 8. 從WebLogic JMS
- 9. JMS連接和會話池
- 10. 處理JMS操作中的異常
- 11. EJB 3 + JMS和事務
- 12. JMS會話和提交
- 13. JMS隊列和JMS主題
- 14. JMS主題訂閱者重新連接
- 15. JMS setTimeToLive
- 16. 什麼是JMS?JMS中的XML
- 17. Grails JMS插件到WebLogic JMS服務器
- 18. JMS服務器消失時JMS捕獲
- 19. Spring,Websphere,JMS和Eclipselink問題
- 20. JMS隊列與2個監聽器
- 21. JMS Translation Bundle @Ignore
- 22. JMS Poller Transactional
- 23. 如何在JMS
- 24. 模擬JMS - jUnit
- 25. JMS/MDB回滾
- 26. JMS/DDS集成
- 27. Spring和JMS DynamicDestinationResolution
- 28. JMS回滾
- 29. Disruptor或JMS?
- 30. Websphere JMS與BUS
與反饋和您與SO社區共享很好。 +1 – MrSimpleMind