OpenTP1 メッセージキューイング機能 TP1/Message Queue 使用の手引
クラスタ機能を使用する場合,ユーザはMQTプロセス構成に応じてシステム定義を作成します。
クラスタ環境でのMQTプロセス構成について,次の図に示します。
図2-50 クラスタ環境でのMQTプロセス構成
クラスタセンダプロセスおよびクラスタレシーバプロセスは,開始時にリポジトリ管理サーバの開始を待ち合わせます。このため,リポジトリ管理サーバを開始しないかぎり,チャネルは動作できません。また,MQTのコマンドの多くは使用できません。該当するコマンドについては,6章の「TP1/Message Queueの運用コマンド」を参照してください。
オンライン中にリポジトリ管理サーバが終了すると,終了中には新しいクラスタセンダチャネルの開始はできません。リポジトリ管理サーバが再開始されると,クラスタセンダを開始します。
クラスタセンダプロセスが開始処理を完了したあとにリポジトリ管理サーバが終了した場合にも,チャネルの開始ができなくなったり,送信経路の再設定処理が完了しないことがあります。クラスタ構成でチャネルを動作させる場合は,リポジトリ管理サーバを必ず動作させてください。
一つのクラスタセンダプロセスで自動定義クラスタセンダチャネルは,MQAサービス定義のmqamqtnam定義コマンドでMCA数に指定した数まで自動的に定義されます。自動定義クラスタセンダチャネルのチャネル属性は,通常は接続先キューマネジャのクラスタレシーバチャネルで指定されたチャネル属性で動作します。ただし,TP1/Message Queueのクラスタセンダチャネルに固有の属性は,リポジトリ情報として管理されないため,次に示す属性値を使用します。
接続先キューマネジャのクラスタレシーバチャネルで指定されたチャネル属性で動作する属性,およびTP1/Message Queue独自の属性のデフォルト値については「3.3.2(3) チャネルデータ定義ブロック(dcmtcq_uoc_mqcd)」,および4章の「mqtalccha(チャネル定義)」を参照してください。
この値はメッセージ編集出口UOCによって変更できます。変更方法については,「2.8.9(3) クラスタチャネルの属性変更」を参照してください。
クラスタセンダチャネルの自動定義の概要について,次の図に示します。
図2-51 クラスタセンダチャネルの自動定義の概要
同じクラスタ内のすべてのクラスタセンダチャネルからのメッセージ受信をクラスタレシーバチャネルが実行します。クラスタレシーバチャネルは,相手キューマネジャごとにチャネル接続情報を保持できます。この機能をクラスタレシーバチャネルのマルチインスタンス機能といいます。マルチインスタンス機能では,一つのクラスタレシーバチャネルのチャネル定義について,複数の接続情報(チャネルインスタンス)を保持します。
クラスタレシーバチャネルのチャネルインスタンスは,MQAサービス定義のmqamqtnam定義コマンドでMCA数に指定した数まで作成できます。
クラスタレシーバチャネルのチャネル属性はリポジトリ情報として相手キューマネジャに連絡され,相手キューマネジャのクラスタセンダチャネルのチャネル属性として使用されます。また,クラスタレシーバチャネルの属性値をチャネル開始時にメッセージ編集出口UOCによってチャネルインスタンス単位にユーザの任意の値に変更できます。
クラスタレシーバチャネルの属性変更方法については,「2.8.9(3) クラスタチャネルの属性変更」を参照してください。
クラスタレシーバチャネルのマルチインスタンスの概要について,次の図に示します。
図2-52 クラスタレシーバチャネルのマルチインスタンスの概要
クラスタチャネルの属性値は,メッセージ編集出口UOCを使用することでユーザの任意の値に変更できます。メッセージ編集出口UOCで変更した属性値は,チャネルが確立している間で有効です。再接続する時に,値はリセットされUOCが変更する前の状態になります。このため,UOCで再度値を変更してください。
メッセージ編集出口UOCとその使用法については,「3. ユーザオウンコーディング」を参照してください。
クラスタ環境では,相手クラスタレシーバに指定したチャネル属性をクラスタセンダチャネルが使用して動作します。このためTP1/Message Queue以外のMQシステムで設定したチャネル属性をTP1/Message Queueのクラスタセンダチャネルが使用し,チャネル属性のサポート範囲の違いによって不正な動作をすることがあります。
TP1/Message Queue以外のMQシステムで,クラスタレシーバチャネルのチャネル属性を設定する場合の注意事項について,次に示します。
特定のチャネルを使用するメッセージ送信が長期間にわたって発生しないで,キューマネジャ内でリポジトリ情報の要求が保持される期間を超えた場合,次に示すチャネルはTP1/Message Queueによって自動的に削除されます。
これらのチャネルの有無については,mqtlscha -n "*"コマンドを入力して確認できます。定義種別としてAUTOINSTまたはMULTINSTが出力されます。また相手システムのキューマネジャ名が出力されます。
例えば,あて先キューの名前を間違って指定したために不要なチャネルが作成された場合は,期間を超えてメッセージを送信しないことでチャネルを削除できます。リポジトリ情報の要求が保持される期間については,「2.8.10(2)(g) リポジトリ情報の保持期間」を参照してください。
事前定義定義クラスタセンダチャネルを削除する場合は,クラスタからキューマネジャを削除する必要があります。詳細については,「2.8.13(2) クラスタからキューマネジャを削除および再参加」を参照してください。
All Rights Reserved. Copyright (C) 2006, 2011, Hitachi, Ltd.
(C) Copyright International Business Machines Corporation 1999, 2002. All rights reserved.