WebSphere MQ: 別名キューの操作 – QALIAS(QA)

WebSphere MQの別名キューの動作を確認する。前回までの記事はこちらのページをご参照。参考サイトは記事の末尾に記載。

別名キューとは

下記のドキュメントより引用。

別名キューとは、キュー・マネージャーが管理するローカル・キューやリモート・キュー定義に対しての「あだ名」になります。(別の言い方をすると、あるキューの「間接的な参照」ということになります)この別名キューを使った場合、物理的な実体は1つしか存在しませんが、アプリケーション・プログラムからはあたかも独立した複数のキューが存在しているかのように扱うことができます。
参考:WebSphere MQ 入門書

対象キューを扱うプログラムにとっては別名キューさえ見えていれば良いので、コンポーネント間を疎結合に保てる。本題とはずれるが、こう言った概念は(少々強引な解釈だが)SQLのviewやOOPの抽象クラスなど他のアーキテクチャにも良くある。

別名キューの作成

runmqscコマンドインターフェイスを用いて既に作成しているローカル・キューQL.Aに対する別名キューQA.Aを作成する。

TARGQパラメータに参照先(target)となるローカル・キューを指定する。

別名キューQA.Aへのputを禁止 – PUT(DISABLED)

また、ローカル・キューQL.Bに対しても下記の設定、参照先別名キューを定義する。

別名キューの動作確認

サンプルプログラム(amqsput)を使用して、別名キューとローカル・キューにメッセージをputした際の結果を確認する。尚、amqsputの使い方はこちらをご参照

想定通りQL.A以外はputでMQRC_PUT_INHIBITEDエラーとなる。QA.Bがエラーとなったのも、参照先のQL.Bのputパラメータがdisabledである為。

参考サイト