Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 解説


4.2.3 チェックポイントダンプファイル

〈この項の構成〉

(1) チェックポイントダンプファイルの目的

オンラインシステムが停止した場合,回復用のジャーナルだけで回復すると,オンライン開始からのすべてのジャーナルが必要となり,回復に膨大な時間が掛かります。そこでオンライン運転中に一定の間隔でポイントを設け,そのポイントで回復する必要のあるテーブルの状態を保存することで,ポイント以前の回復用ジャーナルの必要をなくして,回復時間の短縮を図ります。このポイントをチェックポイントといい,チェックポイントで取得するテーブル情報をチェックポイントダンプといいます。オンラインシステムの全面回復には,最新のチェックポイントダンプの取得からオンラインシステム停止までの間で取得した,回復用のジャーナル全部が必要です。

OpenTP1は,システムサービスごとに回復処理しているため,メモリ上のテーブルを回復する必要があるシステムサービスごとに,チェックポイントダンプを取得しています。チェックポイントダンプを格納するファイルは,システムサービスごとに割り当てます。このファイルをチェックポイントダンプファイルといいます。

チェックポイントダンプは,次のタイミングで取得します。

(2) チェックポイントダンプファイルの構成

チェックポイントダンプファイルは,ファイルグループという論理的な単位で管理されます。これに対して,実際にチェックポイントダンプを取得するファイルの実体を,物理ファイルといいます。一つのファイルグループは,一つまたは二つの物理ファイルで構成されます。

一つのファイルグループを二つの物理ファイルで構成する形態をチェックポイントダンプファイルの二重化といいます。二重化する場合は,それぞれの物理ファイルをA系,B系と区別します。

チェックポイントダンプファイルが必要なシステムサービスは,チェックポイントダンプサービス定義にシステムサービス名,ファイルグループ,および物理ファイルの対応関係を指定します。

チェックポイントダンプサービス定義では,ファイルグループに任意の名称を指定します。このファイルグループ名を使用してチェックポイントダンプファイルを運用します。

チェックポイントダンプファイルのファイルグループは次のような状態に分けられます。

チェックポイントダンプサービス定義で,OpenTP1の開始と同時にオープンするファイルグループを定義します。オープンすると定義しなかったファイルグループは,開始時に予約の状態になります。

1回に取得するチェックポイントダンプを世代といいます。一つの世代を一つのチェックポイントダンプファイルグループに取得するため,ファイルグループを世代ごとに切り替えます。用意したファイルグループすべてにチェックポイントダンプを取得すると,最初のファイルグループに戻ってデータを上書きします。このように,上書きしながら複数のファイルグループにデータを格納していく方式を,ラウンドロビン方式といいます。通常,最新の世代を取得したファイルグループを上書きできない状態にし,そのほかのファイルグループを上書きできる状態にしますが,複数世代保証機能を使用する場合は,二世代のファイルグループを上書きできない状態にします。

ラウンドロビン方式によるチェックポイントダンプの取得を次の図に示します。

図4‒10 ラウンドロビン方式によるチェックポイントダンプの取得

[図データ]

(3) チェックポイントダンプファイルの物理ファイルを追加

オンライン中にチェックポイントダンプファイルに障害が起こり,運用に必要なファイル数に足りなくなった場合,物理ファイルを動的に追加できます。動的に追加する方法は,事前に予約ファイルを定義しておくかどうかで異なります。

(a) 定義していない物理ファイルをオンライン中に追加する方法

チェックポイントダンプサービス定義に指定していない物理ファイルでも,運用コマンドでオンライン中に追加できます。まず,jnladdpfコマンドで追加する物理ファイルをファイルグループに割り当てます。そして,jnlopnfgコマンドでファイルグループをオープンします。これでチェックポイントダンプファイルのオンライン中の追加が完了します。

(b) 予約ファイルを事前に定義しておく方法

チェックポイントダンプサービス定義に事前に予約ファイルを定義してある場合は,jnlopnfgコマンドでオープンする方法と,OpenTP1が自動的にオープンする方法(自動オープン機能)で,ファイルを割り当てられます。

自動オープン機能を使うと,オンライン中に物理ファイルが有効保証世代数にまで減った場合,予約ファイルを現用ファイルとして自動的に割り当てることができます。自動オープン機能を使用する場合は,チェックポイントダンプサービス定義に自動オープンを指定します。

(c) チェックポイントダンプファイルの物理ファイルを削除

動的に追加した物理ファイルに限り,ファイルグループが予約状態であれば,jnldelpfコマンドで削除できます。

(4) 複数世代保証機能

何らかの異常が発生し,最新世代のファイルグループを読み込めない場合でも,一世代前のファイルグループを読み込んで回復処理をすることで,信頼性を向上させることができます。回復処理に備えて,一世代前のファイルグループを上書きできない状態にして保存しておく機能を,複数世代保証機能といいます。最新世代も含めて,上書きできない状態にした世代を有効保証世代といい,上書きできない状態の世代の数を有効保証世代数といいます。複数世代保証機能を使用した場合の有効保証世代数は2,使用しない場合は1になります。

OpenTP1は,有効保証世代での回復に必要なジャーナルを持つシステムジャーナルファイルのファイルグループを,上書きできない状態にします。有効保証世代に基づくシステムジャーナルファイルの上書きチェックを,オーバライトチェックといいます。

(a) 複数世代保証機能を使用した場合の回復手順

複数世代保証機能を使用した場合,まず最新世代のファイルグループを読み込みます。そして,最新世代のチェックポイント以降に取得した全ジャーナルを使用して回復処理をします。何らかの異常が発生して最新世代のファイルグループが読み込めないときには,一世代前のチェックポイントダンプファイルを読み込みます。このときには,一世代前のチェックポイント以降に取得した全ジャーナルを使用して回復処理をします。有効保証世代のファイルグループがすべて読み込めないときには,さらに世代をさかのぼりますが,有効保証世代以前のジャーナルが上書きされて回復できないことがあります。オンライン中に予備以外の状態のチェックポイントダンプファイルのファイルグループ数は,「有効保証世代数+1」以上,必要です。有効保証世代とシステムジャーナルファイルの関係を次の図に示します。

図4‒11 有効保証世代とシステムジャーナルファイル

[図データ]

(b) 縮退運転機能を使用した場合の有効保証世代数

オンライン中,または再開始処理中に,運用に必要なファイル数「有効保証世代数+1」を下回った場合でも,最低二つのファイルが使用できれば,処理を続けられる指定もできます。これをチェックポイントダンプの縮退運転といいます。縮退運転をするかどうかは,チェックポイントダンプサービス定義で指定します。

縮退運転中にOpenTP1システムで障害が発生した場合は,再開始のための情報が一つのファイルでしか保証されていないことになります。縮退運転となったときには,通常の運転から縮退運転に切り替わった旨を伝えるメッセージログが出力されます。このメッセージログが出力された場合は,有効保証世代として使用するファイルを早急に準備してください。

有効保証世代として使用できるファイルが確立できた場合,縮退運転の状態から通常の運転に切り替わった旨を伝えるメッセージログが出力されます。

(5) 有効保証世代とジャーナル容量の関連

システムジャーナルファイルの容量は,チェックポイントダンプファイルの有効保証世代数に比例して,必要になります。システムジャーナルファイル全体でのジャーナルブロック数の目安は,次のとおりです。

チェックポイントダンプを取得する間隔となるジャーナルブロック数×(有効保証世代数+1)

(6) チェックポイントダンプファイルを二重化したときの運用

チェックポイントダンプファイルを二重化してファイルグループを運用した場合,OpenTP1はA系,B系に同じチェックポイントダンプを取得します。二重化しておくと,チェックポイントダンプの読み込み時に片方の系で障害が起こっても,残った系からデータを読み込めるため,信頼性が上がります。

(a) チェックポイントダンプサービス定義の指定

チェックポイントダンプファイルを二重化する場合は,チェックポイントダンプサービス定義のjnl_dualオプションにYを指定します。このとき,一つのファイルグループに二つの物理ファイル(A系,B系)を指定しておきます。

A系とB系の物理ファイルは,同時に障害にならないようにディスクを分けることをお勧めします。また,A系とB系の物理ファイルの容量は,一致していなくてもかまいませんが,一致していない場合OpenTP1は少ない容量の方をチェックポイントダンプの容量と見なします。資源を効率良く使えるように,容量はできるだけ一致させておいてください。

(b) チェックポイントダンプファイルの片系運転

チェックポイントダンプファイルを二重化するとき,一方の物理ファイルに障害が発生した場合,次のどちらかの運用を選択できます。

  • 片系運転可

    A系とB系のどちらかの系の物理ファイルがオープン状態であれば,ファイルグループをオープン状態とするものです。どちらかの系の物理ファイルに障害が発生しても,正常な系で,処理を続行できます。これによって,正常な系のチェックポイントダンプを有効にできます。

  • 片系運転不可

    A系とB系の両方の物理ファイルがオープン状態でなければ,ファイルグループを予約状態とするものです。どちらかの系の物理ファイルに障害が発生した場合,ファイルグループも予約状態となります。なお,A系からの読み込み時に障害が発生した場合,B系から読み込んだあとにファイルグループを予約状態にします。

(c) 二重化した場合の運用上の注意

片系運転不可の場合,片方の系だけに対するオープン,クローズなどの操作はできません。

片系運転可の場合,片方の系だけに対する操作はできます。ただし,上書きできないファイルグループに対するクローズは,どちらの場合もできません。

片系運転可と片系運転不可の場合の相違点を次の表に示します。

表4‒8 片系運転可と片系運転不可の場合の相違点

操作内容

運用方法

片系運転可

片系運転不可

一方の系だけをオンライン中に割り当てる

割り当てられます。

割り当てられます。

一方の系だけをオンライン中に削除する

削除できます。

削除できます。

一方の系だけをオープンする

両方の系が割り当てられていれば,オープンできます。

オープンできません。

一方の系だけをクローズする(上書きできない状態)

クローズできません。

クローズできません。

一方の系だけをクローズする(上書きできる状態)

クローズできます。

クローズできません。

(7) チェックポイントダンプ取得契機のスキップ回数の監視

UAPの無限ループなどが発生すると,チェックポイントダンプの取得処理が連続してできない(チェックポイントダンプ取得契機がスキップされる)ことがあります。チェックポイントダンプが取得できないままオンライン処理を続行すると,回復に必要なシステムジャーナルファイルが多くなり,最終的には使用できるシステムジャーナルファイルが不足して,システムダウンすることがあります。

チェックポイントダンプ取得契機のスキップ回数を監視することで,このようなシステムダウンを防止できます。これによって,チェックポイントダンプ取得契機のスキップが一定の回数に達した場合に,トランザクションの実行プロセスを強制的に停止して,トランザクションを決着(コミットまたはロールバック)します。チェックポイントダンプ取得契機のスキップ回数を監視するためには,チェックポイントダンプサービス定義にjnl_cdskip_limitオペランドを指定します。

また,チェックポイントダンプサービス定義にjnl_cdskip_msgオペランドを指定すれば,チェックポイントダンプ取得契機がスキップされた場合に,スキップ要因となっているトランザクションの情報をKFCA32550-Iメッセージで表示することもできます。