IBM Integration Community Come for answers. Stay for best practices. All we’re missing is you. Join / Log in Ask a question
MQのシステムでは、MQアプリケーションと結びつくのは「キューおよびキューマネージャーになります。システム設計時に、これらのMQオブジェクトのネーミングルールを決めることは重要です。システム全体のネーミング・ルールに関しては、個々のシステムの環境において標準となるものが規定されていると思われますので、一般的にはそれに従います。今回は、MQオブジェクトのネーミング・ルールについて、例や考慮点を紹介していきます。(あくまで一例です。必ずしもこれらのルールに準拠する必要はありませんので、より適したネーミングもご検討ください)なお、MQのネーミングには、全てのプラットフォームで共通に使用できる文字セットを使用することを推奨します。
【キューマネージャー】
キューマネージャー名は大文字にする
全てのプラットフォーム上のキュー・マネージャーと通信を可能にするため、名前には大文字を使用することが推奨されます。
キューマネージャー名はなるべく短くする。
zOS環境・・・キューマネージャー名は、サブシステム名と同一にする必要があります。キューマネージャー名は4文字に限られます。例) ADDX(A=地名、DD=会社の組織のID、X=識別ID)
その他の環境:キューマネージャー名は長いものでも使用することはできますが、短いものをお薦めします。
MQMDにてメッセージID生成の際にキューマネージャーの最初12文字を使用するため12文字以下をお薦めします。
【デフォルト・キューマネージャー】
【キューマネージャー別名】
キューマネージャーは別名12文字以上でも可能です(MVSで4文字以上でも可能です)。キューマネージャー別名は、キューマネージャー間で複数のチャネルを利用することによって大量のメッセージ送受信を可能にする場合などに使用します。この際、キューマネージャー別名とそれに関連するチャネル名の接尾語を同一にします。チャネル名の長さ制限を考慮して、接尾語の長さは3文字程度とします。
【キュー】
MQエクスプローラやMQSCコマンドなどを使用して、キューのリストを表示させる場合、キューはアルファベット順にソートされて表示されます。関連するキューをグループ分けするために共通の接頭語を持たせると、MQの管理(キューの検索をするとき、MVSのセキュリティ管理時、デッドレター・ハンドラーなど)が楽になります。大規模なアプリケーションでは、より多くの階層付けを行います。
【特殊なキュー】トランスミッションキュー
特別な目的が無い限り、宛先のキューマネージャー名と同一の名前を使用します。(ただし、二つ以上のチャネルを並行して定義する場合などには、個々のチャネルごとに、異なる名前(連番を付与するなど)でトランスミッションキューを定義する必要があります)MQクラスター用のトランスミッションキューは"SYSTEM.CLUSTER.TRANSMIT.QUEUE"で固定されます。
応答キュー
デッドレターキュー
要件に応じて、デッドレターキューを定義する。
"SYSTEM.DEAD.LETTER.QUEUE"というローカルキューをデッドレターキューとして使用します。これはいくつかのプラットフォームでは自動的に生成されます。自動的に生成されないプラットフォームでは、これと同じ名前のデッドレターキューを作成してください。どのプラットフォームでも共通の名前をもたせることにより、判別が容易になります。
デッドレターキューを使用するには、キューマネージャー設定でデッドレターキュー名をDEADQ属性に設定する必要があります。
ただし、デッドレターキューを設定することで、障害発生時にメッセージの転送先が変わったり、メッセージの送信順序性が崩れる可能性があります。デッドレターキューを使用するかどうかは、運用手順等も考慮しながら、別途検討するようにしてください。
ブリッジとリンクのためのキュー
イニシエーションキュー
アプリケーションのいろいろな機能に対するイニシエーションキューを作成する際は、以下のような命名パターンとすることができます。例) <アプリケーション名>.INITQ
【チャネル】
クラスターチャネル
メッセージチャネル
前述のトランスミッションキューのネーミング・ルールに従っている場合には、これは<送信元のキューマネージャー名>.<トランスミッションキュー名>と同等です。キューマネージャー別名を使用し、チャネルが複数存在する場合は、この<送信先のキューマネージャー名>は、<キューマネージャー別名>となります。
使用するネットワーク・プロトコルが全てTCP/IPである場合は쁸文字しか制限のないチャネル名にわざわざプロトコル名を記述することは不要ですが、使用するプロトコルの種類がTCPI/IPやSNAなど複数混在する場合は、チャネル名にネットワーク・プロトコル名を含めることをお薦めします。
クライアントチャネル
【その他のコンポーネント】
MQクラスター名
プロセス
トリガー機能により起動されるアプリケーションが識別できる名前にします。全体の機能に対し、階層的なネーミングをつけます。
ストレージクラス(zOSのみ)