[英]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.