1
我的代碼:C#:IBM MQ「解鎖」消息使用Read()方法時
//Initialize MQMessage
MQMessage message = new MQMessage();
//Initialize WebMQConnection
WebSphereMQConnection mqRequestConnection = new WebSphereMQConnection(initQMName, initQChannel, initQConnection, initQName, string.Empty, string.Empty);
mqRequestConnection.Open();
mqRequestConnection.Read(message);
//Get the contents as a string
string body = message.ReadString(message.MessageLength);
return body;
該代碼是一個控制檯應用程序的一部分,並且如預期用於瀏覽隊列順序和讀取每個消息的工作原理。它解析來自平面文件的字符串內容。
但是,似乎Read()方法也會鎖定消息,直到程序關閉。即使我在一個循環中運行該程序以順序讀取所有消息,但在程序完全關閉之前似乎不會「釋放」這些消息。
我已經試過取得和放置,處置,退出等,並沒有什麼似乎工作,除了停止整個控制檯應用程序的執行。
'WebSphereMQConnection'看起來並不像IBM提供的東西。你可以發佈這是做什麼?它是否在同步點下打開隊列?如果是這樣,您需要爲MQ添加提交以「釋放」消息。 – JoshMc
@JoshMc它是一個類的構造函數,最終在調用處理Syncpoint操作的Open()時創建隊列管理器。這是傳統的代碼,我沒有太多的控制權。我嘗試添加一個提交,但它似乎沒有做任何事情。我開始認爲這個問題可能與我給出的核心代碼有關。 – Reed
也許有一種方法可以執行提交? – JoshMc