マイコード使用:キューを順次閲覧し、各メッセージを読み取るために予想されるようにC番号:IBM MQ「ロック解除」メッセージを読む()メソッド
//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()メソッドはプログラムが終了するまでメッセージをロックしているようです。プログラムをループで実行してすべてのメッセージを順番に読み込んでも、プログラムが完全に閉じられるまではメッセージを「解放」していないようです。
私は、取得、PUT、廃棄、バックアウトなどを試みましたが、コンソールアプリケーション全体の実行を停止する以外に何も動作していないようです。
'WebSphereMQConnection'は、IBMが提供する何かのようには見えません。これは何をしているのですか?同期点の下でキューを開くのですか?その場合は、MQをコミットしてメッセージを「解放」する必要があります。 – JoshMc
@ JoshMcこれは、Syncpoint操作を処理するOpen()を呼び出すと、最終的にキューマネージャを作成するクラスのコンストラクタです。私があまり支配していないレガシーコードです。私はコミットを追加しようとしましたが、何もしないようです。私は問題が私が与えられたコアコードであるかもしれないと考え始めている。 – Reed
おそらく、コミットを実行するメソッドがありますか? – JoshMc