BACKOUT {DPLOG | MPLOG} 機能では、それぞれ同じ Adabas デュアルプロテクションログデータセットまたはマルチプロテクションログデータセットにある 2 つのチェックポイント間に適用された更新をすべて取り消します。
BACKOUT {DPLOG | MPLOG} 機能は、クラスタデータベースには有効ではありません。 マージされた PLOG が BACKOUT を実行するために必要とされるので、これは禁止されます。
このドキュメントでは、次のトピックについて説明します。
BACKOUT DPLOG/MPLOG 機能は、次の手順で実行することをお勧めします。
オペレータコマンドまたは Online System コマンド FEOFPL の発行
現在のプロテクションログデータセットで強制的に EOF を実行し、新しいデータセットに切り換えます。 新しいプロテクションログデータセットには、BACKOUT DPLOG/MPLOG に必要なすべての情報が含まれています。
ユーザーアプリケーションの実行
このアプリケーションのニュークリアスによって書き込まれたすべてのプロテクションデータは、1 つのプロテクションログデータセットに収まる必要があります。 アプリケーションの実行中は、プロテクションログの切り換えは発生しません。 この時点でアプリケーションプログラムが失敗し、バックアウトが必要になったと想定します。
オペレータコマンドまたは Online System コマンド FEOFPL の再発行
プロテクションログデータセットをクローズします。 クローズしたデータセットには、BACKOUT DPLOG/MPLOG に必要なすべての情報が含まれています。
ADARES PLCOPY の実行
プロテクションログデータセットの内容をシーケンシャルデータセットにコピーします。 この処理は、ADARES PLCOPY を実行するか、DPLOG の場合はユーザー出口 2 を、MPLOG の場合はユーザー出口 12 を使用することによって実行できます。
ADARES BACKOUT DPLOG/MPLOG の実行
これによってセッションは手順 1 の状態にバックアウトされます。
中断した BACKOUT DPLOG/MPLOG は、最初から再度実行しなければなりません。 プロテクションログデータセットの使用対象データが使用できない場合(このデータプロテクションログがニュークリアスによって再び使用される場合)は、シーケンシャルコピーからの BACKOUT を実行する必要があります。
通常は、パラメータ FROMCP/TOCP/FROMBLK/TOBLK を指定しないでください。 バックアウトには、1 つのプロテクションログデータセットの内容全体を使用することをお勧めします。
ニュークリアスは、バックアウト処理中に、現在使用可能なプロテクションログデータセットに新しいプロテクションログ情報を書き込みます。 これはニュークリアスが使用できる唯一のデータセットです。 BACKOUT DPLOG/MPLOG の途中でプロテクションログの切り換えが発生した場合、ニュークリアスは ADARES PLCOPY によってデータセット全体がコピーされるまで待機し、その後バックアウト処理を再開します。
デフォルトでは、指定した入力データセットのすべてのファイルが BACKOUT 処理の対象になります。 特定のファイルを処理の対象に指定することができます。
CONTINUE は、ファイルのバックアウト中に不完全なトランザクションによる変更が行われた場合に、その自動バックアウトを許可します。 CONTINUE を指定すれば、FILE パラメータによって指定されたデータセットの不完全トランザクションによるすべての変更がバックアウトされます。 ファイルリスト中にカップリングファイルまたは拡張ファイルのコンポーネントファイルが存在する場合、通常ではデフォルトチェックとして行われるカップルファイルのペアチェックおよび拡張ファイルの全コンポーネントファイルのチェックは発生しません。したがって、IGNORECOUPLE または IGNOREEXP を指定してチェックを中止する必要はありません。
CONTINUE を指定すると、ファイルのバックアウト中はデータベース全体が BACKOUT 機能による排他使用のためにロックされます。
BACKOUT 処理終了時、データベース全体に BACKOUT が指定されると、ADARES は、すべての不完全な論理トランザクションを自動的にバックアウトし、入力データセットが終了するまで継続します。 このことは、次に該当する場合にも発生します。
FILE パラメータおよび CONTINUE パラメータの 2 つが指定された場合
TOCP パラメータが指定されなかった場合
NOAUTOBACKOUT パラメータを指定してこの処理を無効にすることができます。
DPLOG は、デュアルプロテクションログデータセットを入力として使用することを示します。MPLOGは、マルチプロテクションログデータセットを入力として使用することを示します。
CONTINUE は、BACKOUT 機能による排他使用のためにデータベース全体をロックします。
CONTINUE は、不完全なトランザクションによってファイルの内容が変更されていた場合、それらをファイルバックアウトの際に自動バックアウトします。 CONTINUE を指定すれば、FILE パラメータによって指定されたデータセットの不完全トランザクションによるすべての変更がバックアウトされます。
ファイルリスト中にカップリングファイルまたは拡張ファイルのコンポーネントファイルが存在する場合、通常ではデフォルトチェックとして行われるカップルファイルのペアチェックおよび拡張ファイルの全コンポーネントファイルのチェックは発生しません。したがって、IGNORECOUPLE または IGNOREEXP を指定してチェックを中止する必要はありません。
DUALPLD はデュアルプロテクションログデータセットに使用するデバイスタイプを指定します。PLOGDEV はマルチプロテクションログデータセットに使用するデバイスタイプを指定します。 デフォルトは、ADARUN DEVICE パラメータで指定されているデバイスタイプです。
EXCLUDE は、BACKOUT 処理から除外するファイル(バックアウトされないファイル)をリストします。 これらのファイルに関するプロテクションレコードはすべて無視されます。
このパラメータは省略可能です。指定しなかった場合、ファイルは一切除外されません。 ファイル番号は 1 度だけリスト可能です。
FILE パラメータが指定されている場合、EXCLUDE パラメータに指定されたすべてのファイルが FILE パラメータにも指定されている必要があります。
EXCLUDE パラメータは、BACKOUT 実行時にトランザクションロジックが使用されるかどうかには関係ありません。
EXCLUDE パラメータは、Adabas Recovery Aid(ADARAI)によって構築されたリカバリジョブで使用するためのパラメータです。
除外されたファイルは ADAREP レポートの拡張 CPLIST にリストされます。
FILE はバックアウト処理の対象とするファイルを指定します。 すべてのファイルを対象とする場合は、このパラメータを省略しなければなりません。 指定ファイルが Adabas 拡張ファイルのコンポーネントファイルである場合、拡張ファイルの全コンポーネントファイルも指定しなければなりません。 指定されたファイルが他のファイルとカップリングされている場合、カップリングされている他方のファイルも指定しなければなりません。
注意:
開始前に、ADARES は 指定されたすべてのファイルを BACKOUT の実行期間中ロックします。 したがって、FILE
パラメータの指定がなければ、データベース全体をロックします。 他のユーザーは、UTYPE=EXU
パラメータが指定されている場合は指定されたファイルに、PARALLELREAD
パラメータが指定されている場合はデータベースに対して、読み取り専用アクセスが可能です。
FROMCP は、バックアウト処理の開始対象チェックポイントを指定します。 チェックポイント ID は、データベースステータスレポートから取得できます。 バックアウト処理をログの最後から開始する場合は、FROMCP パラメータを指定しないでください。
FROMBLK は FROMCP チェックポイントエントリが含まれるブロック番号です。 このブロック番号は、データベースステータスレポートから取得できます。 FORMBLK は、FROMCP が指定された場合のみ指定できます。
IGNORECOUPLE(または CONTINUE)を指定すると、FILE リストの中で、カップルファイルのペアがすべて揃っているかどうかのチェックが BACKOUT 機能で行われなくなります。 CONTINUE パラメータおよび IGNORECOUPLE パラメータの双方が指定されず、またその FILE リスト内でカップルファイルの一方が指定されていない場合、ADARES はエラーメッセージを発行して終了します。
FILE リストに Adabas 拡張コンポーネントファイルが含まれている場合、ADARES BACKOUT では通常、リストのコンポーネントファイルに関連するすべての追加コンポーネントファイルもリストに存在していることをチェックします。存在していない場合、ADARES は BACKOUT 処理を終了してエラーメッセージを発行します。 IGNOREEXP(または CONTINUE)を指定すると、関連するコンポーネントファイルに対するチェックが行われなくなります。
MTR=YES を指定するとマルチスレッドバックアウト機能がアクティブになり、MTR=NO を指定すると使用不可になります。
マルチスレッドバックアウト機能をアクティブにすると、性能を向上させるために、PLOG 情報を含む複数のバッファが同時に Adabas ニュークリアスに送られます。 マルチスレッド再生成機能が使用されないときは、一度に Adabas に送られるバッファは 1 つだけです。
ニュークリアス ADARUN パラメータ MODE=SINGLE が指定されると、MTR は自動的に NO に設定されます。 Adabas がシングルユーザーモードで実行しているときはマルチスレッドは使用できません。
FILE パラメータを指定しないか、あるいは CONTINUE パラメータ付きで指定すると、MTR のデフォルト値は YES になります。 このような場合、マルチスレッドバックアウトはデータベース全体を排他制御するため、通常は効果があります。
上記以外のデフォルト値は NO です。 CONTINUE なしで FILE が指定されたときなど、マルチスレッドバックアウトが一部のファイルのみを排他制御する場合は、異なるファイルにアクセスする通常のアプリケーションを同時に実行できますが、運用中のアプリケーションの性能に悪い影響を与える可能性があります。
1 つの Adabas セッション中にマルチプロテクションログが作成されており、連続していくつかの BACKOUT 機能を実行しなければならない場合、自動バックアウト処理は最後の入力ログに対してのみ実行すべきです。 したがって、最後の入力ログを使用する BACKOUT 実行を除くすべての BACKOUT 実行に対して NOAUTOBACKOUT バラメータを指定しなければなりません。
注意:
NOAUTOBACKOUT パラメータはシングルユーザーモードでは指定できません。
機能の実行中にエラーになると、ユーティリティは、エラーメッセージを出力してユーザーアベンド 34(ダンプあり)またはユーザーアベンド 35(ダンプなし)で終了します。
NOUSERABEND を指定すると、ユーティリティは、エラーメッセージを出力してもアベンドしません。 代りに、メッセージ "utility TERMINATED DUE TO ERROR CONDITION"(エラーのためユーティリティを終了します)を表示してコンディションコード 20 で終了します。
MTR=YES のとき、Adabas ニュークリアスに送られる同時コール数を制限するために NPCALLS パラメータを指定できます。
NPCALLS のデフォルト値は、FILE パラメータが指定されていないか、あるいは COUTINUE 付きで指定されている場合は、ニュークリアス ADARUN パラメータ NT に 1 を加えた値か NC のどちらか小さい方になります。
FILE パラメータが CONTINUE なしで指定されている場合は、デフォルト値はニュークリアス ADARUN パラメータ NT に 1 を加えた値か、NC を 2 で割った値のどちらか小さい方になります。
NPCALLS は、主として、デフォルト値で許可される同時コール数を減らすために使います。 同時コール数が少ないと、ADARES がニュークリアスにかける負荷も少なくなります。 このことは、BACKOUT DPLOG FILE と同時に実行されるアプリケーションプログラムが利用できるリソースを増やす場合に特に役立ちます。
PARALLELREAD パラメータは、データベース全体およびファイル指向の両方の機能に対して、ADARES BACKOUT DPLOG で処理されているファイルに同時読み取り専用アクセスを提供します。
ファイル指向機能では、PARALLELREAD を指定することにより、ADARES はレコードバッファに "EXU=file-list" を含む OPEN コールを発行します。 これは、ADARES がアクティブな間、他のユーザーのためにファイルへの読み取り専用アクセスを可能にします。
FILE が指定されていないとき、または CONTINUE が指定されているときは、PARALLELREAD パラメータはデータベース全体での DPLOG バックアウトに有効です。 このパラメータによって、データベース DPLOG がバックアウトされているときでも読み取り専用ユーザーがデータベースにアクセスできるようになります。
更新コマンドは拒否されます。
バックアウトが行われているデータベース DPLOG で更新されたレコードを、同時アクセスしているユーザーが読み取った場合は、アプリケーションの観点から論理的に間違ったレコードイメージ、または矛盾を示すレスポンスコード(113 など)が表示されることがあります。
注意:
PARALLELREAD での ADARES
オペレーション中に、アソシエータとデータストレージが位置的に異なると、ニュークリアスレスポンスが 113 または 199
になる可能性があります。
ADARUN ステートメントの DBID パラメータで指定されたデータベース以外のデータベースからのプロテクションログを使用してバックアウト処理を行う場合、PLOGDBID は、代替プロテクションログのデータベース ID を指定します。 デフォルトでは、ADARUN 指定のデータベースのデータベース ID です。
TEST パラメータは、処理を実際には行わずに構文のみをテストします。 指定したパラメータの構文だけがテストされ、値や変数の正当性はテストされません。
TOBLK は、TOCP チェックポイントエントリをもつブロック番号を指定します。 TOBLK は、TOCP が指定された場合のみ指定できます。
TOCP は、バックアウト処理を終了するチェックポイントを指定します。 バックアウト処理は、指定されたチェックポイントまで継続します。 バックアウト処理をログの先頭まで継続する場合は、TOCP や NOAUTOBACKOUT を指定しないでください。
ADADBS OPERCOM FEOFPL
ファイル 20 および 21 でユーザーアプリケーションが失敗
ADADBS OPERCOM FEOFPL
ADARES BACKOUT DPLOG,FILE=20,21
この例は、PLCOPY 機能がユーザー出口 2 で実行されることを想定しています。 プロテクションログの切り換えが発生するたびに、デュアルプロテクションログの内容をシーケンシャルデータセットにコピーするためのジョブがこのユーザー出口からサブミットされます。
新しい PLOG に切り換えます。
新しい PLOG データセット上に PLOG データを作成するユーザーセッションを実行します。
PLOG データセットをクローズします。 ユーザー出口 2 が、クローズしたばかりの PLOG データセットの内容をコピーするジョブをサブミットします。
ファイル 20 および 21 について、この PLOG からの BACKOUT を PLOG の先頭まで実行します。