2010-08-11 217 views
2

目前我有一個C#服務正在從隊列中讀取消息(Websphere MQ)並將它們寫入數據庫。 每次我做一個GET消息從隊列中消失。我想要一個額外的功能。我更喜歡從隊列中讀取消息,並且只有在數據庫寫入成功後才從隊列中刪除消息。請注意我在多線程應用程序中執行所有這些操作。我知道有一種瀏覽隊列的方法,但這並不能真正提供我需要的功能。Websphere MQ消息讀取

回答

0

我已經在C++中實現了類似的功能。希望這可以幫助你或某人。

您可以使用選項MQGMO_BROWSE_FIRSTMQGMO_BROWSE_NEXT瀏覽消息,而無需從隊列中刪除消息。 How do I browse a Websphere MQ message without removing it?

將消息標識符存儲在列表或任何其他合適的數據結構中。 將消息寫入數據庫。

然後從隊列中正常地獲取消息,而不使用BROWSE選項。 ImqQueue :: Get有兩個參數:options和ImqMessage。在調用get之前將消息標識符設置爲ImqMessage-class。 ImqMessage充當過濾器。您只能選擇 那些已成功寫入數據庫的消息。

http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.amqzan.doc%2Fuc10330_.htm