以下のような IBM MQ の C# リスナーがあります。ここに記載されているリスナー メソッドのみ。
private void OnMessage(IMessage msg)
{
try
{
ITextMessage textMsg = (ITextMessage)msg;
Console.Write("Got a message: ");
Console.WriteLine(textMsg.Text);
}
catch(Exception ex)
{
}
}
キュー内でテキスト形式のメッセージに到達するたびに、上記のリスナーが呼び出され、値を読み取ることができます。
問題は、リスナーを停止してからメッセージをプッシュすると、そのメッセージが MQ エクスプローラーに保持されることです。しかし、リスナー メソッドが呼び出された場合、メッセージは常にリスナー メソッドから読み取られた直後に「Web Sphere MQ Explorer」から削除されていました。リスナーがメッセージを読んだ後でもメッセージを保持するには、さらに構成を設定する必要がありますか?