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

[目次][用語][索引][前へ][次へ]

4.2.2 システムジャーナルファイル

<この項の構成>
(1) システムジャーナルファイルの目的
(2) システムジャーナルファイルの構成
(3) システムジャーナルファイルの二重化
(4) システムジャーナルファイルの並列アクセス機能
(5) 取得するジャーナルの種類
(6) システムジャーナルファイルの状態
(7) システムジャーナルファイルのアンロード
(8) システムジャーナルファイルのスワップ
(9) 全面回復時の予約状態のファイルのオープン

(1) システムジャーナルファイルの目的

オンラインシステムが停止した場合の全面回復や,UAPに障害が発生した場合のUAP部分回復に必要な,回復用の履歴情報を格納します。回復用の履歴情報には,同期点ジャーナル回復用ジャーナルがあります。全面回復の処理では,最新の世代のチェックポイントダンプと,最新の世代のチェックポイントダンプ取得以降に取得した回復用のジャーナルを基にします。UAPの部分回復ではチェックポイントダンプを使用しないで,回復用のジャーナルだけで処理します。チェックポイントダンプについては,「4.2.3 チェックポイントダンプファイル」を参照してください。

回復用のジャーナルとは別に,システムをチューニングするための統計用ジャーナルや,UAPの任意の履歴情報であるユーザジャーナルも格納します。

(2) システムジャーナルファイルの構成

OpenTP1は,システムジャーナルファイルをファイルグループという論理的な単位で運用します。これに対して,実際にジャーナルを取得するファイル実体を,物理ファイルといいます。通常一つのファイルグループは,一つの物理ファイルで構成しますが,ジャーナルファイル二重化機能を使用する場合は,一つのファイルグループを二つの物理ファイルで構成します。この場合,一つのファイルグループ中の,二つの物理ファイルをA系,B系と呼んで区別します。

システムジャーナルサービス定義では,ファイルグループを少なくとも二つ以上指定し,ファイルグループと物理ファイルの対応関係を指定してください。さらにシステムジャーナルサービス定義でファイルグループに任意の名称を指定してください。このファイルグループ名を使用することで,A系,B系の物理ファイルを同時にオープン,クローズするなど,ファイルグループ単位に運用できます。

(3) システムジャーナルファイルの二重化

一つのファイルグループを二つの物理ファイルで構成してシステムジャーナルファイルを運用できます。これをシステムジャーナルファイルの二重化といいます。この場合,OpenTP1はA系,B系に同じジャーナルを取得します。何らかの異常が発生し,その処理のためにジャーナルを読み込むとき,片方の系が障害でも残りの系を読めるため,信頼性を向上できます。

組になるA系とB系の物理ファイルは,同時に障害にならないように,なるべくディスクを分けてください。また,A系とB系の物理ファイルの容量は,一致していなくてもかまいませんが,容量が一致していない場合には,容量の少ないファイルに合わせてジャーナルを取得します。なるべく容量を一致させてください。

システムジャーナルファイルを二重化した場合,片系運転可片系運転不可を選択できます。ファイルグループを構成する二つの物理ファイルのうち,一つが使用できる状態ならファイルグループを使用可能な状態とすることを片系運転可といいます。ファイルグループを構成する二つの物理ファイルが両方使用できる状態の場合にだけ,ファイルグループを使用可能な状態とすることを片系運転不可といいます。

例えば,ファイルグループfg1,fg2があり,それぞれが物理ファイルfg1a,fg1b,fg2a,fg2bで構成されているとします。物理ファイルの障害は,ディスクデバイス全体の障害である場合が多く,同一ディスク上の物理ファイルがすべて障害になることが多いのです。A系の物理ファイルfg1aとfg2aが障害になった場合,片系運転不可では,使用可能なファイルグループがなくなるので,OpenTP1は異常終了します。このため,障害を対策後,全面回復することになります。片系運転可では,B系の物理ファイルfg1b,fg2bが正常な限りファイルグループは使用可能なので,OpenTP1は続行可能です。

このように片系運転可とは,片方の系が障害になっても,その障害が対策されるまでの間に残りの系で運転を続行させるものです。ただし,片系運転可では,一時的に二重化されない期間が発生するため,この部分は信頼性が低下します。片系運転可,片系運転不可はシステムジャーナルサービス定義で指定します。

片系運転可,片系運転不可を次の図に示します。

図4-6 片系運転可,片系運転不可

[図データ]

(4) システムジャーナルファイルの並列アクセス機能

一つのファイルグループを複数の要素ファイルで構成して,システムジャーナルファイルを使えます。この機能をシステムジャーナルファイルの並列アクセス機能といいます。並列アクセス機能で二重化した場合のファイルグループの構成を次の図に示します。

図4-7 並列アクセス機能使用時のファイルグループの構成図(jnl_max_file_dispersion=3の場合)

[図データ]

並列アクセス機能の概要を次の図に示します。

図4-8 並列アクセス機能の概要(jnl_max_file_dispersion=3の場合)

[図データ]

ジャーナルの入出力が集中すると,ディスクへの負荷が増大しI/O性能が低下します。このような場合に,ファイルグループを複数の要素ファイルで構成して,システムジャーナルファイルへ並行にアクセスできるようにすると,ジャーナルの入出力の性能を上げることができます。

一つのファイルグループを構成する物理ファイルは,SCSIインタフェースやハードディスクが重なるようになっていてもかまいませんが,これらには並行にアクセスできないため,並列アクセス機能の効果を十分に発揮できません。SCSIインタフェースやハードディスクは,重ならないようにしてください。また,複数の物理ファイルの容量は一致していなくてもかまいませんが,一致していない場合,OpenTP1は最も少ない物理ファイルの容量を要素ファイルの容量と見なします。資源を効率良く使えるように,物理ファイルの容量はできるだけ一致させることをお勧めします。

システムジャーナルファイルの並列アクセス機能では,システムジャーナルファイルの障害などで,並行してアクセスできる要素ファイルの数(以降,並列アクセス数といいます)が減ります。これによるジャーナル入出力性能の低下を防ぐため,最低限保証したい並列アクセス数を指定できます。この最低限保証したい並列アクセス数を,最小分散数といいます。また,最大でどれだけ並列アクセスするかを示す並列アクセス数を,最大分散数といいます。

システムジャーナルサービス定義でファイルグループを指定するときに,要素ファイル名を付けます。さらに,システムジャーナルサービス定義のjnl_max_file_dispersionオペランドに最大分散数を,jnl_min_file_dispersionオペランドに最小分散数を指定しておきます。

(5) 取得するジャーナルの種類

(a) 同期点ジャーナル

全面回復時やUAP部分回復時に,未決着のトランザクションを決着して資源の整合性を回復する必要があります。トランザクションが決着しているかいないか,同期点での処理がどこまで進んでいるのかを判断するために,2相コミットの過程で履歴情報を取得します。資源の回復が必要かどうかを判定するこの履歴情報を,同期点ジャーナルといいます。同期点ジャーナルには,PJHJBJTJDJがあります。同期点ジャーナルを次の表に示します。

表4-5 同期点ジャーナル

種別 内容
PJ ルートトランザクションブランチ,トランザクションブランチがコミット処理を開始したときに出力されます。
HJ トランザクションブランチがコミット準備完了の状態になったときに出力されます。
ルートトランザクションブランチからは出力されません。
BJ トランザクションをロールバックしたときに出力されます。
ルートトランザクションブランチ,トランザクションブランチから出力されます。
TJ トランザクションの同期点処理を終了したときに出力されます。
ルートトランザクションブランチ,トランザクションブランチから出力されます。
DJ トランザクションをヒューリスティック決定したときに出力されます。
ルートトランザクションブランチ,トランザクションブランチから出力されます。
(b) 回復用ジャーナル

全面回復時や部分回復時に,同期点ジャーナルによって資源を回復する必要がある場合,直ちにデータベースや回復対象テーブルのデータを回復します。資源の整合性を回復するため,資源の更新情報を取得します。この更新情報を,回復用ジャーナルといいます。回復用ジャーナルには,回復する資源の種類によって,FJCJがあります。回復用ジャーナルを次の表に示します。

表4-6 回復用ジャーナル

種別 内容
FJ DAMファイルの更新情報です。全面回復時とUAP部分回復時に,このジャーナルを基にDAMファイルを回復します。
CJ MCFサービスとTAMサービスが管理する回復対象テーブルの更新情報です。同期点取得時などに取得します。全面回復時にこのジャーナルを基に回復テーブルを回復します。
トランザクション管理サービスが管理する回復対象テーブルの更新情報です。同期点取得時などに取得します。全面回復時にこのジャーナルを基に回復テーブルを回復します。
(c) 統計用ジャーナル

システムチューニングに必要な統計用の履歴情報です。統計用ジャーナルには,MJIJGJOJAJSJがあります。

MJ,IJ,GJ,OJ,AJは,MCFを使用して他システムとメッセージ送受信するときにだけ取得します。MJは,mcftactmjコマンドを入力して取得を開始し,mcftdctmjコマンドを入力して取得を終了します。IJ,GJ,OJを取得するかどうかは,MHPのアプリケーションごとにアプリケーション属性定義で指定します。AJを取得するかどうかは,論理端末ごとに論理端末定義で指定します。

SJはOpenTP1システム全体の統計情報です。SJのうちシステム統計情報は,統計取得用の運用コマンドを入力すると,それ以降ユーザの指定した一定間隔で取得します。トランザクション統計情報は,トランザクションサービス定義で取得するかどうかを指定します。統計用ジャーナルを次の表に示します。

表4-7 統計用ジャーナル

種別 内容
MJ 入力編集前のメッセージ入力情報と,出力編集後のメッセージ出力情報です。
IJ 受信メッセージを入力キューに格納する直前に取得するメッセージ入力情報です。
GJ MHPが受信メッセージを受け取る直前に取得するMHP受信情報です。
OJ 送信メッセージを出力キューに格納した直後に取得するメッセージ出力情報です。
AJ メッセージを他システムに送信したあと,他システムからの送信完了報告を受信した直後に取得する送信完了情報です。
SJ OpenTP1の稼働状態全般を把握するための稼働統計情報です。システム統計情報とトランザクション統計情報があります。システム統計情報は,システムサービスとUAPに関する統計情報です。一定時間ごとにOpenTP1の状態を取得します。トランザクション統計情報は,トランザクション処理に関する統計情報です。トランザクションブランチごとに同期点処理が完了した時点で取得します。
(d) ユーザジャーナル(UJ)

UAPから関数を呼び出してシステムジャーナルファイルに出力する,ユーザ任意の情報です。ユーザジャーナルは,システムのチューニングやユーザ業務そのものに利用します。ユーザジャーナルは,トランザクション内,またはトランザクション外で出力できます。

(6) システムジャーナルファイルの状態

システムジャーナルファイルのファイルグループの状態は,次の2種類に分けられます。

使用可能状態のファイルグループは,現用,または待機として,使用不可能状態のファイルグループは予約として,状態を管理します。なお,要素ファイルの必要数は,システムジャーナルサービス定義に指定した値で決まります。

システムジャーナルファイルには,予約以外のファイルグループが二つ以上必要です。

OpenTP1を正常開始で開始すると,システムジャーナルサービス定義で指定したファイルグループのうち,ONLと指定したファイルグループがすべてオープンされます。オープンされたファイルグループのうち,最初に指定したファイルグループが現用となって,そのほかは待機となります。また,構成する物理ファイルが必要な数に満たなかったファイルグループや,ONLと指定しなかったファイルグループは,予約となります。

システムジャーナルファイルでは,常に現用のファイルグループにジャーナルが出力されます。現用のファイルグループが満杯になると,待機のファイルグループのうち一つを現用に切り替えます。このとき,以前の現用ファイルグループは,待機ファイルグループになります。使用可能状態のすべてのファイルグループが満杯となると,最初のファイルグループに戻ってジャーナルを出力します。

(7) システムジャーナルファイルのアンロード

待機のシステムジャーナルファイルのジャーナルは,ファイルに複写しておく必要があります。ファイルにジャーナルを複写することを,アンロードといいます。システムジャーナルファイルのアンロードには,jnlunlfgコマンドを使用するか,またはシステムジャーナルサービス定義のjnl_auto_unloadオペランドにYを指定して自動アンロード機能を使用します。ユーザファイルの回復や統計用ジャーナルの編集,ユーザジャーナルの運用は,ファイルにアンロードしたジャーナルを使います。ジャーナルをアンロードしたファイルを,アンロードジャーナルファイルといいます。OpenTP1は,ファイルグループがアンロードされているかどうかチェックして,アンロードされていない待機ファイルグループはスワップ先にしません。ファイルグループがアンロードされているかどうか,チェックすることをアンロードチェックといいます。スワップ先がない場合には,OpenTP1は異常終了します。OpenTP1が異常終了したときの処置は,「5.3 障害対策の概要」を参照してください。

(a) アンロードチェックの抑止

通常はアンロード待ち状態になる待機のファイルグループを,現用のまま使える指定ができます。これをアンロードチェックの抑止といいます。アンロードチェックを抑止する場合は,システムジャーナルサービス定義のjnl_unload_checkオペランドにNを指定してください。

アンロードチェックを抑止している場合は,OpenTP1の稼働中にジャーナルファイルをコマンドでアンロードしないでください。アンロードチェックの抑止を指定した場合にアンロードを実行するときは,いったんjnlclsfgコマンドで該当するファイルグループをクローズしてから,アンロードしてください。

アンロードチェックを抑止するとアンロードジャーナルファイルは作成されないため,アンロードジャーナルファイルを入力とするジャーナル編集コマンド(jnlcolcコマンド,jnlsttsコマンドなど)は実行できません。

アンロードチェックを抑止した場合は,ファイルグループの状態をjnllsコマンドで確認すると,アンロード待ち状態が出力されることがあります。アンロード待ち状態が出力された場合でも,実際は現用として使われています。

(8) システムジャーナルファイルのスワップ

待機状態のシステムジャーナルファイルには,スワップ先にできるものとスワップ先にできないものとがあります。スワップ先にできるシステムジャーナルファイルは,アンロード済みで,回復に必要なジャーナルがないファイルグループです。アンロードしていないファイルグループ,または回復に必要なジャーナルがあるファイルグループは,スワップ先にできません。回復に必要なジャーナルがあるかどうかのチェックについては,「4.2.3(4) 複数世代保証機能」を参照してください。システムジャーナルファイルのスワップ先がない場合には,OpenTP1は異常終了します。OpenTP1が異常終了したときの処置は,「5.3 障害対策の概要」を参照してください。システムジャーナルファイルのスワップを次の図に示します。

図4-9 システムジャーナルファイルのスワップ

[図データ]

(9) 全面回復時の予約状態のファイルのオープン

オンライン障害発生後の全面回復時,OpenTP1はトランザクションを決着するためのジャーナルを出力します。このとき,システムジャーナルファイルにジャーナルを格納しきれなくなった場合には,OpenTP1は再び異常終了します。全面回復時にジャーナルファイルが不足したとき,予約状態のファイルをオープンして,ジャーナルを格納できます。予約状態のファイルをオープンするかどうか,システムジャーナルサービス定義で指定します。なお,アンロードすればスワップ先としてジャーナルを格納できる,上書きできる状態のシステムジャーナルファイルがある場合は,予約状態のファイルをオープンしません。jnlunlfgコマンドでジャーナルファイルをアンロードしてください。