Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 運用と操作


10.2.1 ステータスファイル

〈この項の構成〉

(1) オンライン中

オンライン中の障害は,書き込み時に発生するものと読み込み時に発生するものに分けられます。

(a) 書き込み時

予備ファイルがあるとき

OpenTP1は現用ファイルを予備にスワップします。

その後,次の手順で障害が発生したステータスファイルを初期設定してください。

  1. 障害が発生して閉塞したステータスファイルをstsrmコマンドで削除します。

  2. ステータスファイルをstsinitコマンドで作成します。

  3. 作成したステータスファイルをstsopenコマンドでオープンして,予備状態にします。

予備ファイルがないとき

片系運転可の場合,現用ファイルの片系に障害が発生すると,正常な系だけで処理を続行します。ただし,片系運転中に正常な系に障害が発生したり,ファイルの更新中に異常終了したりすると,OpenTP1を再開始できなくなります。そのため,現用ファイルが片系運転状態となった場合,ユーザは次のどちらかの対策を実施してください。

  • 予備ファイルを用意してスワップ

    現用ファイルを次の手順でスワップしてください。

    1. 無効ファイルをstsopenコマンドでオープンし,予備ファイルを用意します。

    2. stsswapコマンドを実行して現用ファイルをスワップします。

  • 障害が発生した系のファイルを回復

    障害が発生して閉塞したファイルの内容を次の手順で回復してください。

    1. 閉塞した系のファイルをstsrmコマンドで削除します。

    2. 削除したファイルをstsinitコマンドで初期設定します。

    3. 初期設定したファイルをstsopenコマンドでオープンします。

    stsopenコマンドを実行すると,正常な系のファイルの内容が,障害が発生した系のファイルに複写されます。複写が完了した時点で,現用決定時刻を新たに取得し,現用ファイルとして回復します。

片系運転不可の場合,OpenTP1は異常終了します。

予備ファイルを用意したあと,OpenTP1を再開始します。その後,次の手順で障害が発生したステータスファイルを初期設定してください。

  1. 障害が発生して閉塞したステータスファイルをstsrmコマンドで削除します。

  2. ステータスファイルをstsinitコマンドで作成します。

  3. 作成したステータスファイルをstsopenコマンドでオープンして,予備状態にします。

(b) 読み込み時

ステータスファイルはA系の現用ファイルから読み込まれます。A系の現用ファイルを読み込み中に障害が発生した場合,B系の現用ファイルを読み込めるかどうかでユーザの対処方法が異なります。

B系の現用ファイルが読み込めるとき

A系とB系の予備ファイルがある場合,OpenTP1はB系の現用ファイルの内容をA系とB系の予備ファイルに複写します。

A系とB系の予備ファイルがない場合,OpenTP1が停止します。A系とB系の予備ファイルを用意したあと,OpenTP1を再開始してください。その後,次の手順で新しいステータスファイルを用意してください。

  1. 障害が発生して閉塞したA系の物理ファイルをstsrmコマンドで削除します。

  2. A系の物理ファイルをstsinitコマンドで初期設定します。

  3. 初期設定したファイルをstsopenコマンドでオープンします。

A系,B系の現用ファイルが読み込めないとき

OpenTP1が停止します。

次の手順でOpenTP1を開始してください。ただし,仕掛り中だった処理は引き継げません。DAM FRC,TAM FRCを実行してください。

  1. 障害が発生したステータスファイルをstsinitコマンドで初期設定します。

  2. OpenTP1をdcstart -nコマンドで強制的に正常開始します。

(2) 再開始時

ステータスサービス定義の指定によって,対処方法が異なります。

(a) sts_initial_error_switchの指定を省略,またはstopと指定した場合

ステータスファイルに障害が発生した場合,OpenTP1が異常終了します。定義に指定したステータスファイルに一つでも障害があれば,OpenTP1を開始しません。対処方法は,障害が発生したファイルによって異なります。

障害が発生したファイルが前回の現用ファイルの場合

A系,B系の現用ファイルが両方とも障害となった場合,次の手順でOpenTP1を開始してください。ただし,仕掛り中だった処理は引き継げません。

DAM FRC,TAM FRCを実行してください。

  1. 障害が発生したステータスファイルをstsinitコマンドで初期設定します。

  2. OpenTP1をdcstart -nコマンドで強制的に正常開始します。

A系,B系の現用ファイルのどちらか片方だけが障害となった場合,次の手順でOpenTP1を開始してください。

  1. 現用ファイルをスワップするための予備ファイルがあるかどうかを確認します。予備ファイルがない場合は,stsinitコマンドで予備ファイルを作成します。

  2. ステータスサービス定義のsts_initial_error_switchオペランドの指定をcontinueに変更します。

  3. OpenTP1を再開始します。

障害が発生したファイルが前回の現用ファイルではない場合

次の手順でOpenTP1を開始してください。

  1. 障害が発生したファイルの実体がある場合は,stsrmコマンドで削除します。

  2. ステータスファイルをstsinitコマンドで初期設定します。

  3. OpenTP1を再開始します。

(b) sts_initial_error_switch=continueまたはsts_initial_error_switch=excontinueと指定した場合

ステータスファイルに障害が発生しても処理を続行します。最新の現用ファイルの片系に障害が発生した場合は,正常な系の内容を予備ファイルのA系とB系に複写します。その後,現用ファイルと予備ファイルを切り替えて,OpenTP1を開始します。ただし,複写できる予備ファイルがない場合,OpenTP1は異常終了します。また,excontinueを指定した場合,初期化状態のファイルは現用ファイルとはしません。

なお,sts_initial_error_switch=continueと指定すると,OpenTP1は,再開始時にオープンできたファイルの中からいちばん新しい現用決定時刻を持つファイルを現用ファイルと決定します。しかし,両系ともオープンできないファイルが一組でもある場合,現用と決定したファイルが本当に前回の現用ファイルであるかどうか,ステータスサービスは判断できません。このような場合,ステータスサービス定義でsts_last_active_fileオペランドに前回のオンラインで最新の現用ファイルだった論理ファイルの名称を指定しておくことで,OpenTP1が決定した現用ファイルが正しい現用ファイルかどうかを調べることができます。OpenTP1が決定した現用ファイルがsts_last_active_fileオペランドで指定した論理ファイル名と一致した場合,開始処理を続行します。一致しなかった場合,開始処理を停止します。ユーザは,A系,B系の現用ファイルが両方とも障害となった場合と同様に対処してください。sts_last_active_fileオペランドの指定がなく,かつ現用ファイルを決定できない場合は,開始処理を停止します。

前回のオンライン中に現用ファイルの片系に障害が発生していた場合,片系運転後の再開始時に誤ったファイルを現用に選択しないために,ステータスサービス定義のsts_last_active_sideオペランドに正常な系を指定します。

再開始時,sts_last_active_sideオペランドに指定した系だけがオープンできた場合は,スワップします。スワップできないとOpenTP1は停止します(ステータスサービス開始時の現用ファイルの片系運転はできません)。また,sts_last_active_sideオペランドに指定した系がオープンできないと,OpenTP1は停止します。

現用と決定されたファイルのA系,B系の内容が異なる場合,sts_last_active_sideオペランドに指定された系に関係なく,最新の情報を持つ系を現用と見なして古い情報を持つ系に複写後,再開始します。

なお,ステータスサービスは,ステータスサービス起動中に発生したステータスファイル障害,およびオンライン中に障害が発生した現用ファイルの閉塞状態だけを再開始時に引き継ぎます。このため,オンライン中にstsopenコマンドでオープン,またはstscloseコマンドでクローズした状態は引き継ぎません。

また,ステータスサービスは,オフラインでstsinitコマンド,またはstsrmコマンドを実行したときのステータスファイルの状態を認識しません。

(3) 正常開始時

再開始時の場合と同様に対処してください。