ここでは,サービスグループに関する運用について説明します。
サービスグループの状態は,mcftlssgコマンドで表示できます。
表示内容はサービスグループ名,サービスグループの状態,受信メッセージ数などです。
サービスグループは,mcftdctsgコマンドで閉塞できます。mcftdctsgコマンドを実行すると,オプションの指定によって入力キューの入力,入力キューのスケジュールを閉塞します。また,アプリケーション属性定義で,アプリケーションが異常終了した場合のサービスグループのスケジュール閉塞(srvghold=s)を指定すると,アプリケーションが異常終了し,アプリケーション異常終了限界回数になった場合にサービスグループは閉塞されます。
入力キューの入力を閉塞した場合,入力キューにすでにあるメッセージは正常に処理されます。閉塞中にメッセージを受信すると,メッセージ廃棄通知イベント(ERREVT2)が通知されます。
入力キューのスケジュールを閉塞中にメッセージを受信したとき,メモリキューの場合はメッセージ廃棄通知イベント(ERREVT2)が通知されます。ディスクキューの場合は,サービスグループの閉塞解除後にメッセージを再スケジュールします。
再開始時に,前回のオンラインで仕掛り中だった入力メッセージの再スケジュールに失敗すると,該当するサービスグループの入力キューのスケジュールは閉塞されます。
また,次に示すオペランドの指定値を超えたためにUAPがタイムアウトで異常終了した場合も,サービスおよびサービスグループが閉塞対象となります。
再スケジュール失敗の原因を取り除いたあと,mcftactsgコマンドを入力すると,サービスグループの閉塞を解除し,前回のオンラインで仕掛り中だった入力メッセージを再スケジュールできます。
mcftdctsgコマンド,またはmcftactsgコマンドで変更した状態(入力キューの入力,および入力キューのスケジュール状態)を,全面回復時に引き継ぐことができます。MCFマネジャ定義の状態引き継ぎ定義で,サービスグループ数上限値を指定しておくと,指定した値までの資源の状態を引き継ぎます。また,全面回復時に閉塞状態を引き継がない場合には,mcftdctsgコマンドに-rオプションを指定します。
サービスグループの入力キューの内容を出力できなくなったときなど,mcftdmpquコマンドで入力キューに滞留しているディスクメッセージの内容を確認できます。mcftdmpquコマンドを実行すると,入力キューの内容がファイルに複写されます。-aオプションを指定すると,以前mcftdmpquコマンドを実行したときの複写先ファイルに,入力キューの内容が再び追加書き込みされます。
mcftdlqsgコマンド(入力キューの削除)と組み合わせてmcftdmpquコマンドを使用する場合は,mcftdmpquコマンドを実行する前にmcfthldiqコマンドで入力キュー処理を保留しておく必要があります。この場合,mcftdlqsgコマンドの-dオプション(削除種別)にはdiskを指定してください。
サービスグループの入力キューの内容複写(mcftdmpquコマンド)と削除(mcftdlqsgコマンド)を続けて行う場合は,複写するメッセージ件数と削除するメッセージ件数を一致させる必要があります。そのため,この間入力キューへの入力,およびスケジュールを抑止しなければなりません。このように一時的な入力キューへの入力,スケジュールの保留は,mcfthldiqコマンドで行えます。mcfthldiqコマンドを実行すると,オプションの指定によって,入力キューの入力,スケジュール,または入力とスケジュールの両方を保留します。
入力キュー処理の保留は,mcftrlsiqコマンドで解除できます。
mcfthldiqコマンドはOpenTP1システムに次のような影響を与えるので,使用する際にはご注意ください。また,mcfthldiqコマンドを実行後,目的の処理が終了したら,必ずmcftrlsiqコマンドを実行してください。
mcfthldiqコマンド,またはmcftrlsiqコマンドで変更した状態(入力キューの入力,およびスケジュールの保留と保留解除状態)を,全面回復時に引き継ぐことができます。MCFマネジャ定義の状態引き継ぎ定義で,サービスグループ数の上限値を指定しておくと,指定した値までの資源の状態を引き継ぎます。このとき,スケジュールの保留によってITQに滞留していたメッセージは,全面回復後でも保留解除待ち状態で引き継がれます。入力の保留によってITQへの入力を待たされているメッセージは,全面回復時,ITQに入力されます。なお,サービスグループ数の上限値を指定した環境で,保留状態を引き継ぎたくない場合は,mcfthldiqコマンドに-rオプションを指定してください。
入力キューに残っているメッセージを削除する場合は,mcftdlqsgコマンドを使用します。
mcftdlqsgコマンドのオプションの指定によって,ディスクキューだけを削除したり,ディスクキューとメモリキューを両方とも削除したりできます。
ただし,mcftdlqsgコマンドを単独で使用する場合は,mcftdlqsgコマンドを実行する前に,mcftdctsgコマンドでサービスグループを閉塞しておく必要があります。
mcftdmpquコマンド(入出力キューの内容複写)と組み合わせてmcftdlqsgコマンドを使用する場合は,mcftdmpquコマンドを実行する前にmcfthldiqコマンドで入力キュー処理を保留しておく必要があります。この場合,mcftdlqsgコマンドの-dオプション(削除種別)にはdiskを指定してください。
サービスグループの入力キューの内容を出力できなくなったときなど,次の手順でサービスグループの入力キューの内容をファイルに出力できます。