簡體   English   中英

IBM MQ的偵聽器

[英]Listener for IBM MQ

我正在嘗試為IBM MQ queue創建偵聽器,以使用本機API將消息放入隊列時讀取消息。

最好使用Thread / TimerTask每秒執行一次GET。

我需要使用CCDT,用戶名和密碼進行身份驗證。

有沒有可用的默認監聽器? 使用下面的代碼閱讀

MQMessage theMessage    = new MQMessage();
MQGetMessageOptions mqGetMessageOptions = new MQGetMessageOptions();

mqGetMessageOptions.options=MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_FIRST;
mqGetMessageOptions.matchOptions=MQC.MQMO_NONE;
mqGetMessageOptions.waitInterval=5000;
try{
        //read the message from queue          
queue.get(theMessage,mqGetMessageOptions);  
  mqGetMessageOptions.options = MQC.MQGMO_MSG_UNDER_CURSOR;

    queue.get(theMessage, mqGetMessageOptions);

您的代碼是瀏覽消息而不是使用消息(差異很大)。

其次,您應該始終使用MQC.MQGMO_FAIL_IF_QUIESCING選項。

mqGetMessageOptions.options=MQC.MQGMO_WAIT | MQC.MQGMO_BROWSE_FIRST | MQC.MQGMO_FAIL_IF_QUIESCING;

第三,不要使用輪詢來訪問隊列-您的線程/計時器提示。 這是浪費資源。 您已經為MQGET定義了5秒的等待間隔,如果間隔不夠長,則將其增加到更合理的范圍。

最后,為什么將這個問題標記為“ JMS”。 您的問題與JMS沒有任何關系。

暫無
暫無

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

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