2.8.12 クラスタ運用時の注意事項
クラスタを運用する上で注意する点を次に示します。
-
次に示す条件でリモートキューマネジャに存在するクラスタキューにMQOPENまたはMQPUT1命令を発行した場合,MQRC_CLUSTER_RESOLUTION_ERRORが返却されます。
-
mqrsupが1回も開始されていないとき
-
クラスタに参加できていないとき
-
mqrsupまたはmqrsppが開始されていないとき(ローカルキューマネジャにリモートキューマネジャの情報が存在しないとき)
-
-
次に示す条件でリモートキューマネジャに存在するクラスタキューにMQPUT命令を発行した場合,MQRC_NO_DESTINATIONS_AVAILABLEが返却されます。
-
MQOO_BIND_ON_OPEN指定のMQOPEN命令を発行後,MQPUT命令発行時にクラスタセンダチャネルが削除されているとき
-
MQOO_BIND_ON_OPEN指定のMQOPEN命令を発行後,MQPUT命令発行時にクラスタセンダチャネルの情報の期限が切れているとき
-
-
MQINQ命令でリモートキューマネジャに存在するクラスタキューを指定した場合,次にメッセージが登録されるクラスタキューの属性が照会されます。
ただし,クラスタキューが書き込み禁止になった場合は,次に示すMQOPEN命令のオプションによって動作が異なります。
-
MQOO_BIND_ON_OPEN
常にMQOPEN命令発行時に決定したクラスタキューの属性を照会します。
-
MQOO_BIND_NOT_FIXED
すべてのクラスタキューが書き込み禁止であった場合には,すべてのクラスタキューを書き込み許可にしたときに,次にメッセージが登録されるクラスタキューの属性を照会します。
-
-
クラスタ機能を使用するUAPの実行中にmqrsupを再度開始しないでください。
再度開始した場合,UAPのMQIがエラーリターンする場合があります。
-
OpenTP1開始後に1回でもリポジトリ管理サーバ(mqrsupおよびmqrspp)を開始させればクラスタチャネルの動作は可能となります。しかし,オンライン中にリポジトリ管理サーバを終了させた場合,クラスタ固有のメッセージの受信やメッセージ送信経路の再設定ができなくなります。オンライン中にリポジトリ管理サーバを終了しないでください。
-
mqrsppサービス定義のparallel_countの常駐プロセス数に0を指定しないでください。
0を指定した場合は,mqrsup開始時にKFCA31501-Eのメッセージを出力してmqrsupが異常終了します。
-
事前定義クラスタセンダチャネルの接続先がパーシャルリポジトリであり,接続後にフルリポジトリに変更する場合は,mqrsupを再度開始してください。
-
クラスタ参加後,キューマネジャ名を変更しないでください。
変更した場合,以前のクラスタ参加情報は失われ,再度クラスタ参加を実行します。
-
キューマネジャがクラスタに参加すると,「KFCA31509-I クラスタに参加しました」というメッセージが出力されます。このメッセージが出力されたあとに,mqtalccha定義コマンドの-aオプションでクラスタ名を変更する場合は,クラスタからの脱退および再参加が必要になります。クラスタからの脱退および再参加については,「2.8.13(2) クラスタからキューマネジャを削除および再参加」を参照してください。
-
クラスタ環境のシステムキューのメッセージを削除しないでください。削除した場合,OpenTP1が異常終了することがあります。
-
次に示す条件でリモートキューマネジャに存在するクラスタキューにMQOPEN命令またはMQPUT1命令を発行する場合,MQI命令の内部でdc_rpc_call関数を使用します。
-
未知のクラスタキュー名を指定
-
未知のクラスタキューマネジャ名を指定
上記の条件に一致する場合は,mqrsppが開始済みであり,dc_rpc_call関数が発行できる環境である必要があります。
-
-
クラスタセンダチャネルをフルリポジトリに接続し,クラスタレシーバチャネルがフルリポジトリから接続されている場合にあて先不正などのエラーによってクラスタに参加できないときは,mqrsupを終了したあと再び開始することによって,再度クラスタへの参加を試みることができます。
-
システム時刻を変更した場合,自システムを再構築してください。また,参加していたクラスタの全フルリポジトリからRESET CLUSTERコマンドに自システムのキューマネジャ名を指定して実行してください。
-
クラスタにフルリポジトリが2つある環境で,フルリポジトリのクラスタレシーバチャネルが削除された場合,次のどちらかのメッセージが出力されます。
-
KFCA16350-I(種別にDELETE,かつチャネル名にフルリポジトリ向けのクラスタセンダチャネル名)
-
KFCA31533-I
フルリポジトリが1つになっていないかをmqrls -cコマンドで確認してください。
mqrls -cコマンドで出力される2つの「参加時使用チャネル名」のどちらかが「****」になっている場合,フルリポジトリが1つだけであることを示しています。この場合,フルリポジトリの状態を確認してください。
-