3.1.14 サービスグループ閉塞機能
- 〈この項の構成〉
(1) 概要
サービスグループ閉塞機能は,特定のサーバ(TP1/EE)をシステムから切り離すための機能です。
サービスグループ閉塞/閉塞解除はeesgrpctlコマンドを使用します。
システムからの切り離しとは,サービスグループ閉塞対象TP1/EEへのネーム情報を使用したRPC送信要求を対象外にすることを意味します。
ただし,次の場合,サービスグループ閉塞機能を使用できません。
-
MCPを使用している場合(mcp_use=Yを指定している場合)
-
XTCを使用している場合(xtc_use=Yを指定している場合)
-
ネーム機能を使用していない場合(name_use=Nを指定している場合)
サービスグループを閉塞すると,サービスグループ閉塞したTP1/EEはRPC送信元からの送信先サーバ,負荷レベルによる転送先サーバとしての対象から外れます。
サービスグループ閉塞を解除するとRPC要求送信先サーバ,および転送先サーバの対象となります。
コマンドにオプションを指定すると,サービスグループの閉塞状態を確認(表示)できます。
なお,サービスグループ閉塞後,RPC要求元サーバ,および同一サービスグループ名の他のサーバでeenamupdateコマンドを実行すると,各サーバのネーム情報を即時更新(送信先サーバとして除外)できます。
eenamupdateコマンドを実行しない場合は,ネーム情報の更新までタイムラグが発生する場合があります。
この間,サービスグループ閉塞したTP1/EEがRPC要求を受信する場合があります。その場合の動作は「(4) サービスグループ閉塞中の動作」を参照してください。
|
(2) サービスグループ閉塞機能を使用する場合の前提
-
OBM機能を使用している場合
OBMを使用している場合はOBMを停止してからサービスグループを閉塞してください。
OBMを停止しない場合,サービスグループ閉塞中にBCM-BCS間またはeeobmstartコマンド-BCM間の通信ができなくなり,実行中のOBMが強制停止するおそれがあります。このため,サービスグループ閉塞前にOBMを停止してください。
-
DBキュー機能を使用している場合
DBキューを使用している場合は,次のどちらかを実施してください。
-
DBキューの読み出しを継続したい場合
サービスグループ閉塞をするTP1/EEがDBキュー読み出しサーバの場合,サービスグループ閉塞前にDBキューサービスを閉塞し,その後読み出しサーバを切り替えてください。その後,DBキューサービスの閉塞を解除してください。
-
DBキューの読み出しを停止しても良い場合
サービスグループ閉塞をするTP1/EEがDBキュー読み出しサーバの場合,サービスグループ閉塞前にDBキューサービスを閉塞してください。
-
(3) サービスグループ閉塞の流れ
緊急ライブラリ入れ替え時を例にサービスグループ閉塞の手順の流れを次の図に示します。
サーバA,B,C,Dはそれぞれ次の機能を持ったサーバで,サーバBのライブラリ入れ替えをする場合の例を説明しています。
サーバA:RPC送信元サーバでOBMのBCMがあるサーバ。
サーバB:RPC送信先サーバでOBMのBCSおよびDBキューの読み出しをするサーバ。
サーバC,D:RPC送信先サーバでOBMのBCSがあるサーバ。
なお,この例では,OBM,DBキューを使用しているサーバを対象とし,DBキューは読み出しを停止しても良い場合について説明しています。1.〜10.の順で実行してください。
|
-
サーバAで,OBM停止コマンド(eeobmstop)を実行してOBMを停止する。
-
DBキューサービス閉塞コマンド(eedbqdctsv)を実行し,DBキューサービスを閉塞する。
-
サービスグループ閉塞コマンド(eesgrpctl)を実行し,サービスグループを閉塞する。
-
サービスグループ閉塞したTP1/EEにRPC送信するすべてのプロセスで,ネーム情報更新コマンド(eenamupdate)を実行する。
サービスグループ閉塞したプロセスと同一サービスグループ名のすべてのプロセスに対してもネーム情報更新コマンドを実行する必要があります。これは,負荷レベルによるサービスグループ閉塞済みのサーバへの転送を防止するためです。
-
処理キュー統計情報表示コマンド(eelsque)を実行し,全サービスの滞留数が0になったか確認する。
-
ライブラリ入れ替えコマンド(eechglib)の自ノード実行で,サーバのライブラリを入れ替える。
-
サービスグループ閉塞解除コマンド(eesgrpctl)を実行し,サービスグループの閉塞を解除する。
-
4.と同プロセスに対してネーム情報更新コマンド(eenamupdate)を実行する。
-
DBキューサービス閉塞解除コマンド(eedbqactsv)を実行し,DBキューサービスの閉塞を解除する。
-
サーバAで,OBM開始コマンド(eeobmstart)を実行してOBMを再開する。
(4) サービスグループ閉塞中の動作
-
RPC負荷レベルの監視無効
RPC負荷レベル監視を抑止します。
-
サービスグループ閉塞中を示すメッセージ出力
定期的にメッセージログファイルにサービスグループ閉塞中を示すKFSB80310-Iメッセージを出力します。
-
RPCのユーザサービス
処理キューに滞留しているサービスを処理します。ただし,サービス閉塞または引き出し禁止の場合は除きます。
新規にRPC要求を受信した場合,そのRPC要求が転送できるときは,同一サービスグループ名の他サーバに転送します。
転送できない場合,RPCエラー応答(リターン値EERPCER_SERVICE_CLOSED)を返却します。また,非応答型のRPC要求を受信した場合は,受信した要求を破棄します。
ee_rpc_call(),ee_rpc_cmtsend()のflagsにEERPC_CALL_MYPROC(自プロセス通信)を指定した場合は,正常に処理します。
次に,RPC要求方法と,RPC受信側での転送,送信可否を示します。ただし,サービスグループ閉塞コマンドの実行からネーム情報即時反映コマンドの実行までの間に,RPC要求を送信することがあります。
表3‒12 RPC要求とその転送/送信可否 項番
内容
動作
サービスグループ閉塞前に実行したもの
(サービスグループ閉塞時にキューに滞留していたもの)
サービスグループ閉塞後に実行したもの
RPC送信先※1
RPC送信元※2
1
eesvgdef定義先の送信の
-
ee_rpc_call()
-
ee_rpc_cmtsend()
実行する。
横転送
正常送信
2
ネーム情報による送信の
-
ee_rpc_call()
-
ee_rpc_cmtsend()
-
dc_rpc_call()
実行する。
横転送
送信不可
(送信先対象外)
3
横転送(転送回数が上限未満)
実行する。
横転送
−
4
横転送(転送回数が上限以上)
実行する。
破棄
−
5
ネームサーバ指定の
-
ee_rpc_call_to
-
dc_rpc_call_to()
実行する。
破棄
送信エラー
6
ノード識別子指定の
-
ee_rpc_call_to
-
dc_rpc_call_to()
実行する。
破棄
送信エラー
7
スケジュールダイレクトの
-
ee_rpc_call_to
-
dc_rpc_call_to()
実行する。
破棄
正常送信
8
ee_rpc_call_to(上記以外)
実行する。
可
送信エラー
- (凡例)
-
−:対象外です。
- 注※1
-
サービスグループ閉塞したプロセスがRPC要求を受信した場合の動作です。
- 注※2
-
RPC送信元がサービスグループ閉塞したプロセスに対し,RPC要求を送信した場合の動作です。
-
(a) RPCプロトコルを使用したTP1/EE機能
サービスグループ閉塞中のRPCプロトコルを使用したTP1/EE機能の各処理を次の表に示します。
項番 |
内容 |
動作 |
|
---|---|---|---|
サービスグループ閉塞前に実行したもの (サービスグループ閉塞時にキューに滞留していたもの) |
サービスグループ閉塞後に実行したもの |
||
1 |
eechglib (他ノード実行) |
− |
実行しないでください。実行した場合の動作は保証しません。 全ノード指定で実行した場合,サービスグループ閉塞したプロセスだけ実行されないことがあります。 |
2 |
eesvctl (他ノード実行) |
− |
実行しないでください。実行した場合の動作は保証しません。 全ノード指定で実行した場合,サービスグループ閉塞したプロセスだけ実行されないことがあります。 |
3 |
eesdhchg (他ノード実行) |
− |
実行しないでください。実行した場合の動作は保証しません。 全ノード指定で実行した場合,サービスグループ閉塞したプロセスだけ実行されないことがあります。 |
4 |
eeucmd (他ノード実行) |
− |
実行しないでください。実行した場合の動作は保証しません。 |
5 |
eetimchown |
− |
実行しないでください。実行した場合の動作は保証しません。 |
6 |
OBMサービス |
実行しないでください。OBMが強制停止するおそれがあります。事前にeeobmstopコマンドでOBMを停止しておいてください。 |
|
7 |
永続タイマサービス実行 |
実行します。ただし,サービスグループ閉塞中に新たに起動時刻に達したタイマの起動要求は,他ノードに横転送します。 |
実行します。ただし,タイマの起動要求は,他ノードに横転送します。 |
- (凡例)
-
−:対象外です。
(b) RPCプロトコル以外のサービス実行
サービスグループ閉塞中の各トランザクションの動作を次の表に示します。
項番 |
トランザクション |
動作 |
|
---|---|---|---|
サービスグループ閉塞前に実行したもの (サービスグループ閉塞時にキューに滞留していたもの) |
サービスグループ閉塞後に実行したもの |
||
1 |
TMトランザクション (永続化無のユーザタイマ) |
実行します。 ただし,サービスグループ閉塞中に新たに起動時刻に達したタイマは,サービスグループ閉塞解除まで実行しません。 (タイマ起動監視状態継続) |
サービスグループ閉塞解除まで実行しません。 (タイマ起動監視状態継続) ただし,即時起動を指定した場合は実行します。 |
2 |
MNトランザクション(DBQ) |
実行します。 処理キュー滞留数チェック時に滞留数が0にならないおそれがあるため,事前にeedbqdctsvコマンドでDBキューサービスを閉塞しておいてください。 (DBキュー読み出し継続) |
|
3 |
MNトランザクション (RAP) |
実行します。 |
実行します。 (エラー応答します)。 |
4 |
UTトランザクション (eeexecut) |
実行します。 |
|
5 |
CUトランザクション (eeucmd) |
実行します。 |
|
6 |
エラートランザクション |
実行します。 |
(5) 再開始時のサービスグループ閉塞状態引き継ぎ
サービスグループの閉塞状態は,TP1/EEプロセスの再開始時に引き継ぎます。
サービスグループの閉塞状態が「閉塞中」または「閉塞処理中」の状態で,次のようにTP1/EEプロセスが終了した場合,再開始時のサービスグループの閉塞状態は「閉塞中」となります。それ以外は「閉塞解除中」となります。
-
TP1/EEプロセスが異常終了した
-
TP1/EEプロセスを強制停止/計画停止A/計画停止Bで終了させた
再開始時にサービスグループの閉塞状態が「閉塞中」の場合,起動直後にKFSB80310-Iメッセージを出力します。以降,閉塞状態が継続する間,1分間隔でKFSB80310-Iメッセージを出力します。
(6) ネーム情報更新機能
ネーム情報更新機能は,サービスグループの閉塞または閉塞解除をしてサーバ(TP1/EE)のネーム情報(削除・登録)を即時に更新するための機能です。
通常,TP1/EEのネーム情報は,インターバル間隔で更新します。このため,サービスグループ閉塞・閉塞解除によるネーム情報の更新は即時に行われない場合があります。
指定したサービスグループ(サービスグループ閉塞・閉塞解除したサービスグループ)のネーム情報を即時更新したい場合は,eenamupdateコマンドで更新できます。
サービスグループ閉塞をした場合,ネーム情報の更新はTP1/EE以外の全TP1/EEに対し実行する必要があります。