WebSphere MQ: トリガリング (2) amqsinq サンプル・プログラム

前回の記事の続編。ここでは、WebSphere MQのトリガリング機能をサンプル・プログラムであるamqsinqを用いて確認する。

amqsinqとは

ソーズコードはLinuxでは下記に保管されている。
保管先:/opt/mqm/samp/amqsinqa.c
プログラムのロジックはソース中のコメントに分かりやすいものが記載されていたので、引用させて頂く。

amqsechと同じく、amqsinqもトリガー・モニター経由で起動される。トリガー・モニターより渡された構造体内で指定されているキューからメッセージを順々にgetし、そのメッセージをキューの名前としてMQINQをcallする。その結果を構造体内で指定されているReply-toキューにputする。

現状の構成コンポーネント

前回迄に下記のキュー、プロセス・オブジェクトを作成している。

上記の加えて、amqsinq用のプロセス・オブジェクトを新規に作成し、OL.Aキューが参照するプロセス・オブジェクトをamqsinq用に変更する。

amqsinqを用いた検証

先ず、下記のコマンドでトリガー・モニターを起動。

その後、別のプロンプトでamqsreqを起動する。

トリガー・モニターの結果

amqsreq側のプロンプトの実行結果

QL.AやSYSTEM.SAMPLE.REPLY等の存在するキューにつては属性値を出力している。反対に存在しないキューについてはrc=2085(MQRC_UNKNOWN_OBJECT_NAME)を返している。

参考ドキュメント

  • WebSphere MQ Application Programming Guide Version 7.0
  • WebSphere MQ System Administration Guide Version 7.0