簡體   English   中英

解決Tibco EMS和.NET API中的預取

[英]Working around pre-fetch in Tibco EMS and .NET API

全部在Tibco EMS 5. *和.NET API的上下文中

我必須處理現有的消息處理模型,該模型處於一個循環中:

  • 連接已創建/打開
  • 會話已創建/打開
  • 消息使用者已創建
  • 接收方法稱為

如果消息!= null,那么我們將使用它並提交或回滾事務(在基礎會話上)。 系統在該模型中每隔x秒拉一次。

我創建了一個連接工廠,以確保僅創建新會話(如果以前的會話仍在使用中)。 這樣系統可以在同一連接上工作。

但是,由於每個Receive調用(通過.NET接口)返回一條消息並將幾條(pre-fetch-1)放入本地隊列,因此在預取方面遇到了問題。 因此,下一次我應該真正重用同一會話,以讀取已提取的消息。 只要有東西(接收不會返回空值),我就使用包裝器來重用會話和消息使用者。 這種方法是可行的,但即使在本地仍然獲取某些內容,我似乎也無法在Receive上獲取null。 似乎只要我在同一連接上,提取的消息就會被標記為已送達(即使會話已顯式關閉)。

有人會知道如何使用預取= 1打開連接/會話嗎? 還是有更好的解決方案?

提前致謝,

解決方法:在隊列級別關閉預取。

暫無
暫無

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

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