2009-12-09 76 views
2

我正在測試WebLogic 10.3.1 JMS,但存在問題。如何設置隊列生產者超時?

我的測試步驟:

  1. 啓動WebLogic Server
  2. 開始JMS客戶
  3. 客戶端發送一個對象到WebLogic JMS和服務器接收到的對象。
  4. 停止WebLogic服務器
  5. 發送另一個對象到WebLogic JMS。

我期望的是一個例外,但沒有任何出現和程序掛起。計劃在停:

sender.send(objMsg); 

我加一些超時設置,但仍然沒有工作:

((WLProducerImpl) sender).setSendTimeout(1000); 
((WLConnection) connection).setReconnectPolicy(JMSConstants.RECONNECT_POLICY_PRODUCER); 
((WLConnection) connection).setReconnectBlockingMillis(1000); 

有什麼辦法來產生這種情況的例外?非常感謝你。

最好的問候, 克里斯

回答

0

發現的解決方案:

請加上這兩個參數:

-Dsun.net.client.defaultConnectTimeout=30000 
-Dsun.net.client.defaultReadTimeout=30000 
0

你可以嘗試把超時的發送方法。類似於以下內容: sender.send(objMsg,Message.DEFAULT_DELIVERY_MODE,Message.DEFAULT_PRIORITY,10000);

0

我懷疑WebLogic傳輸已掛起,但未檢測到服務器已經消失 - 並且發送在傳輸中被阻止。除非WebLogic JMS在內部使用單獨的線程,否則不會有幫助。

恕我直言,WebLogic支持是唯一能夠幫助你的人(看起來像一個bug)。

相關問題