簡體   English   中英

JMSTemplate send()的回滾或超時

[英]Rollback or time-out for JMSTemplate send()

我們目前正在使用JmsTemplate的send(Destination,messageCreator)方法將消息發送到webMethods隊列。 但是,有時send方法花費的返回時間太長,我們無法承受,因為超時應該只有5秒。 我的問題是如何確保這一點? 似乎JmsTemplate沒有發送超時。

我認為我們有一個選擇,就是等待5秒鍾來自send()方法的響應。 如果超過5秒,我們將其視為失敗。 但是,我們需要確保根本不會處理已發送的消息(嘗試發送),因為我們將認為此請求已失敗。 我們如何做到這一點? 回滾? 謝謝!

JmsTemplate是核心JMS API的更高級別的抽象。 該核心(JMS)API沒有這種機制。

JMS發送花費這么長時間是很不尋常的。 除非您有大量的消息和緩慢的網絡。

您可以在另一個線程上處理發送並嘗試在5秒鍾后中斷發送,但這僅在JMS客戶端庫代碼可中斷的情況下才有效。

但是,由於競爭條件,通常不可能可靠地做您想做的事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM