注意:
現在、RECOVER 機能は BS2000 および z/OS システムでのみ使用できます。 z/VM および VSE
システムでは、今後サポートされる予定です。
ADARAI RECOVER 機能は、Adabas データベースまたは選択したデータベースファイルを回復するジョブ制御情報(リカバリジョブストリーム)を構築します。 RECOVER 機能は次のことを行います。
PLOG 情報を読み込み、PLCOPY が必要かどうかを判断します。
RLOG を読み込み、スケルトンジョブ制御からリカバリジョブストリームを構築します。
ADARAI RECOVER は、データベースまたはファイルを RECOVER 機能の実行前の状態にリストアするために必要なジョブストリームを構築します。 完全なジョブストリームは、DD/JCLOUT データセットに送られます。
ADARAI は、生成されたジョブストリームにエラーメッセージまたは情報メッセージも適宜含めます。 ジョブをサブミットする前に、エラーを手動で修正する必要があります。 ジョブストリームにメッセージが存在することは、ADARAI RECOVER から返されるゼロ以外のリターンコードによって示されます。
BS2000 システムの場合、RECOVER 機能では次の処理も実行します。
ジョブ制御を生成するとき、BS2000 の LIST 機能によって行われるものと同じチェックを実行します。
エラーが発生したチェックに対して、作成されたジョブ制御に BS2000 の /REMARK ステートメントを含めます。
注意:
このようなエラーが発生した場合は、ジョブ制御を手動で修正する必要があります。
このドキュメントでは、次のトピックについて説明します。
ADARAI RECOVER 機能は、リストア対象の世代として認識した正確なシーケンスに基づいてジョブを構築します。
世代を開始した操作で作成されたデータセットからデータベースをリストアします。
検出された次のユーティリティチェックポイントまで PLOG を再生成します。
ユーティリティを再実行するジョブステップを生成し、そのチェックポイントの後で再生成を開始します。
すべてのユーティリティが再生され、世代に存在する最後の PLOG ブロックが再生成されるまで、このシーケンスが続行します。
次の図に、ADARAI の動作を示します。
新しい世代を A から開始するためにデータベースが保存されます。
世代中のさまざまな時点でデータベースが実行されます。
ファイル 1 に対する更新の実行
ファイル 2 に対するリオーダの実行
ファイル 3 に対するインバートの実行
ファイル 5 に対するロードの実行
上記の場合、リカバリ順序は次のようになります。
データベースを A の状態に戻すため、フルセーブまたはフルセーブと差分セーブがリストアされます。
データベース再生成は、A の最初のチェックポイントから B の更新チェックポイントまで実行されます。 その後、再生成ジョブは終了します。
ファイル 1 の更新ユーティリティが実行され、データベース再生成は B のチェックポイントおよび C のインバートチェックポイント間で実行されます。
ファイル 3 のインバートユーティリティが実行され、データベース再生成はチェックポイント C および D のロードチェックポイント間で実行されます。
ファイル 5 のロードユーティリティが実行され、データベース再生成はチェックポイント D および E のリオーダチェックポイント間で実行されます。
ファイル 3 のリオーダが実行され、データベース再生成はチェックポイント E および F の最新データベースレベル間で実行されます。
ADARAI RECOVER 機能の OPT パラメータを使用すると、大規模なデータベースのリカバリ所要時間を最小限に抑える操作またはシーケンスを識別できます。
例えば、10,000 個の更新を含むファイルを削除または再ロードする場合、初めからファイルをリストアし、10,000 個の更新を再生した後、削除またはロード操作が発生したときにすべてを破棄するような操作は、避ける必要があります。
最適化を選択すると、ADARAI は、例に示すようなファイルのリストアをジョブのメインのリストアでは行いません。 ファイルの再生成は、ファイルが削除された後、またはロードによって作成された後にのみ行われます。
削除されたファイルには更新が含まれなくなります。
ロードによって作成されたファイルでは、ロード以降に行われた更新のみが重要です。
最適化されたジョブストリームを使用すると、回復されたデータベースは元の構築とは異なる方法で再構築されます。 最適化されたリカバリジョブは元のジョブとまったく同じ方法で再生するわけではないため、リカバリを行うとき、データベースでスペースが不足するなどの問題が発生する場合があります。 ただし、ほとんどの場合、データベースリカバリを最適化することによって得ることができる利点に比べると、この問題を重要視する必要はありません。 問題が発生する可能性については、状況に応じて判断する必要があります。
正常に実行するリカバリジョブを生成するため、ADARAI には次の要件があります。
デュアルプロテクションロギングまたはマルチプロテクションロギングがアクティブな状態でデータベースを実行する必要があります。
データベースでファイルを更新するユーティリティ機能に対するシーケンシャルデータセット入力を保持する必要があります。
SAVE または MERGE 機能で作成されるシーケンシャル出力データセットは、保持する必要があります。 SAVE FILE 機能には、RESTFILE=YES を指定して ADARAI RECOVER を使用する場合にのみ、このことが当てはまります。
保持されたデータセットの名前は、変更しないで元のままにしておく必要があります。これは、ADARAI では名前の異なるコピーを探知できないためです。
保持されたデータセットをカタログすることをお勧めします。
元のデータベースのセーブに対して差分セーブ出力および DSIM データセットをリストアすることによってシャドーデータベース(通常の本番データベースのコピー)を構築すると、元のデータベースの差分セーブ中に発生した PLOG アクティビティは ADARAI で認識されません。このため、シャドーデータベースでリストア操作が必要になった場合に、ADARAI は DSIM データセットを再構築できません。
ただし、DSIM データセットと差分セーブデータセットを結合してオフラインの新しい差分セーブデータセットを作成し、結合された新しいデータセットをシャドーデータベースに対してリストアすると、PLOG が不要になるため、シャドーデータベースのリカバリに必要なすべての情報が ADARAI に提供されます。
一般的に、ADARAI では RESTORE DELTA 処理が問題なく行われます。 ただし、RESTORE DELTA で DSIM データセット(本質的には作業データセット)を使用している場合は、ADARAI RECOVER が必要になったとき、DSIM データセットが元の状態に保たれていないことがあります。 このため、RECOVER 処理中にこのような RESTORE DELTA を再生する前に、ADARAI では DSIM データセットの作成に使用された COPY または PLCOPY 要求を記録し、データセットを再構築するためのジョブステップを発行します。
ADARAI は、RLOG 全体から適切なエントリを検索します。 エントリが検出されないと、RESTORE ステップの前に DSIM データセットを再構築できないため、RESTORE DELTA を再生できません。
生成されたリカバリジョブで、ADARAI は ADAORD ユーティリティの DD/FILEA ファイルを書き込みます。 この処理は、回避することができません。これは、REORDER 機能を再生する必要があり、この機能によって、DD/FILEA ファイルの書き込みが要求されるためです。
この場合、次の制限があります。
ADAORD STORE 処理では、リカバリを行っている世代の一部としてユーティリティが実行されたときに、同じ DD/FILEA が単に読み込まれます。
ステップの実行後に削除される一時ファイル(DISP=NEW、DELETE)を DD/FILEA に対して使用できます。これは、リカバリジョブの実行時にファイルの作成および削除が再度行われるためです。
既存のファイル(DISP=OLD)を DD/FILEA に対して使用できます。 リカバリジョブが実行されるとき、このファイルがまだ存在すると、ADARAI ではこのファイルに対して、単に元のジョブが実行されたときのファイル属性を割り当てます。
新しいファイル(DISP=NEW、CATLG)が DD/FILEA に割り当てられ元の ADAORD REORDER ステップで保持されており、リカバリジョブが REORDER ステップ段階になったときにまだファイルが存在する(正常な動作)場合は、ADARAI では同じファイルを再度作成しようとし、その結果ジョブが失敗します。
GDG を使用していると、世代によって作成された実際のデータセットの名前のみが ADARAI リカバリジョブで認識されます。 データセットがすでに存在する(正常な動作)と、ADARAI は同じファイルを再度作成しようとし、その結果ジョブが失敗します。
次のデータセットは、ADARAI RECOVER 機能に対する入力です。
DD/RLOGR1:リカバリログ
DD/PLOGR1 および DD/PLOGRn:マルチプロテクションログ。ADARAI RECOVER パラメータ FEOFPL=YES(デフォルト)を使用した場合に必要です。
DD/JCLIN:サイトによって異なるスケルトンジョブ制御ステートメントを指定します。 RECOVER 操作では、完全なデータベースリカバリジョブストリームを作成するため、このステートメントが RLOG 情報と結合されます。
BS2000 システムの場合、DDJCLIN は可変レコード形式の SAM データセットです。 EDT を使用すると、このデータセットを作成および編集できます。 詳細は、「スケルトンジョブ制御」を参照してください。
z/OS システムの場合、RECFM=FB、LRECL=80、および 80 バイトの倍数である BLKSIZE で DDJCLIN データセットを定義する必要があります。
ADARAI RECOVER の出力は、データベースリカバリを行う実行準備済みのジョブストリームです。 このリカバリジョブストリームは、DD/JCLOUT ファイルに書き込まれます。 RECOVER 操作中にエラーの可能性が検出されると、ADARAI は警告メッセージを出力しコンディションコード 4 で終了します。 「リカバリ前のチェック」を参照してください。
BS2000 システムの場合、DDJCLOUT および DDJCLCON は可変レコード形式の SAM データセットです。 これは、BS2000 のジョブ制御規則に準拠しています。
z/OS システムの場合、RECFM=FB、LRECL=80、および 80 バイトの倍数である BLKSIZE として定義されたデータセットを DDJCLOUT DD ステートメントでポイントしている必要があります。
リカバリジョブストリームには、次の時点でニュークリアスを開始するジョブステップが含まれています。
最初の再生成ジョブステップの前および
ニュークリアスを自動終了するユーティリティ操作の後
ユーティリティが最初にシングルユーザーモードで実行されたかどうかにかかわらず、ADARAI RECOVER ジョブでは、データベースがアクティブな状態で、すべてのユーティリティを再生します。 最初にシングルユーザーモードで実行されたユーティリティは、マルチユーザーモードで再生されます。 これらのジョブステップについては、「リカバリジョブストリームの構築」および「スケルトンジョブ制御」を参照してください。
RECOVER 機能は、RELGEN パラメータの制御の下に一度に 1 世代ずつ実行されます。 RELGEN を指定しない場合、デフォルトは現行世代です。
RECOVER は、ニュークリアスがアクティブまたは非アクティブのどちらの状態でも実行できます。 この機能は世代の RLOG 情報を変更しないため、同じ世代に対して複数回実行できます。
ただし、RECOVER が失敗した後、DD/JCLOUT リカバリジョブストリームの実行中に RECOVER を再実行する場合は、作成される新しいリカバリジョブストリームが元のリカバリジョブストリームと異なることがあります。 これは、RLOG を更新するデータベースに対して、元のリカバリジョブストリームでユーティリティを実行する場合があるためです。 新しい RECOVER 操作ではその後、失敗したリカバリジョブストリームの一部として実行されるユーティリティのリカバリジョブストリームが構築されます。
また、ADASAV RESTORE の実行後にリカバリジョブストリームが失敗すると、新しい世代が作成されます。 この場合は、RELGEN=1 のパラメータ設定を使用して RECOVER を実行し、元の世代を取得してください。
ADARAI RECOVER FEOFPL=YES と指定すると、RECOVER は実行の開始時点で PLOG を読み込み、コピーする必要のある情報を検索します。 必要に応じて、ニュークリアスをコールし、PLOG 切り替えを強制的に行います。 ニュークリアスが非アクティブの場合は、ユーザー出口 2 が起動されます。
次に、RECOVER はスケルトンジョブ制御をストレージに読み込み、RELGEN パラメータで指定された世代の先頭から開始して発生順に RLOG を読み込みます。 世代の定義については、「世代:リカバリの単位」を参照してください。
データベース全体をリカバリする場合、RECOVER は ADASAV SAVE または RESTORE 情報を使用して新しい RESTORE/RESTONL データベース操作を作成します。 ファイルレベルのリカバリの場合は、SAVE/RESTORE データベース情報を使用して RESTORE FILE=... 機能を作成します。
データベースまたはファイルをリストアするジョブストリームを作成した後、RECOVER では %%JCL-STARTNUC ステートメントを使用してニュークリアスを開始するジョブステップを作成します。
次に、最初の再生成ジョブステップを作成します。 世代の開始がオンライン SAVE(または DELTA SAVE)に基づいていない限り、FROM チェックポイント(FROMCP)はこのジョブステップに含まれません。 その場合、再生成はオンラインセーブの最後のチェックポイント(SYN2)で開始します。
ユーティリティの次のチェックポイント(REGENERATE が停止すべきポイント)までのすべての PLOG が取り込まれ、適切なパラメータが ADARES REGENERATE 機能に対して指定されます。 再生成する PLOG が 99 個を超えると、ADARAI は複数の REGENERATE ジョブステップを生成し、各ジョブステップで 99 個までの入力 PLOG データセットが処理されます。
次のユーティリティ実行までの PLOG が再生成されると、ユーティリティジョブステップが出力リカバリジョブに生成されます。 次に ADARAI は、ユーティリティの次のチェックポイントまでの PLOG がすべて含まれている別の REGENERATE ジョブステップを挿入します。
リカバリジョブは、RELGEN パラメータで指定された世代の終わりが検出されるまで、REGENERATE ステップおよびユーティリティステップの挿入を続けます。 この時点で、完全なジョブストリームが DD/JCLOUT ファイルに送られます。
RECOVER 機能の FILE パラメータを指定すると、ファイルレベルでリカバリを行うことができます。 ファイルレベルのリカバリ処理は、基本的にはデータベースレベルのリカバリ処理と同じですが、FILE パラメータで指定されたファイルに処理が限定されます。
ADARAI は、パラメータをユーティリティ実行ステートメントに追加することによって、ファイル固有の結果を DD/JCLOUT に出力します。 例えば、次のステートメントが元の ADASAV RESTORE ステートメントに含まれているとします。
ADASAV RESTORE FMOVE=2,3,NIRABN=100,1000,DSSIZE=550B,20
この場合、RECOVER FILE=3 から次の DD/JCLOUT ステートメントが作成されます。
ADASAV RESTORE FMOVE=2,3,NIRABN=100,1000,DSSIZE=550B,20 ADASAV EXCLUDE=2
注意:
リカバリ対象ファイルが拡張ファイルチェーンの一部であるかカップリングされていると、チェーンまたはカップリングリスト内のすべてのファイルをまとめてリカバリする必要があります。
カップリングファイルまたは拡張ファイルチェーンがすべてまとめてリカバリされないと、ADARAI でこれが検出され、ADARAI RECOVER
機能は失敗します。
ファイルレベルのリカバリジョブを実行する前に、Adabas ニュークリアスはアクティブになっている必要があります。 データベース自体を開始するデータベースレベルのリカバリジョブとは、この点が異なります。
ファイルレベルの RECOVER 操作では、データベース全体で実行されたユーティリティに対するジョブ制御(ADADEF NEWWORK など)は作成されません。 ただし、データベース全体だけでなく個々のファイルに対しても再実行できるユーティリティは例外です。 このようなユーティリティの例として、ADASAV RESTORE FILE=... ジョブ制御の作成に使用できる DD/SAVE 入力データセットを指定する ADASAV RESTORE(データベース)を挙げることができます。
AUTOBACKOUT は、ファイルレベルのリカバリでのみ指定できます。
AUTOBACKOUT を指定すると、リカバリジョブの最後の REGENERATE 機能が終了した時点で、未完了のトランザクションがバックアウトされます。 完了したトランザクションのみがデータベースに残ります。
AUTOBACKOUT を指定しないと、未完了のトランザクションがデータベースに残ります。
データベースレベルのリカバリの場合、最後の REGENERATE 機能が終了した時点で、未完了のトランザクションは常にバックアウトされます。
DRIVES は、生成中のリカバリジョブの RESTORE ステップに対する入力として使用する入力データセット数を指定します。
DRIVES パラメータには、世代を開始したジョブの DRIVES パラメータ以下の値を指定する必要があります。 例えば、DRIVE=4 のデータベースセーブで世代を開始した場合、RECOVER DRIVES パラメータには 1、2、3、または 4 のみを指定できます。
RESTORE ステップの DRIVES に低い値を指定すると、ADARAI RECOVER は必要な DD/RESTn DD/DLBL のみを割り当て、各 DD/RESTn DD/DLBL に同じ個数の入力データセットを割り当てます。
DSIMDEV は、ADARUN DEVICE パラメータで指定されたもの(デフォルト)と異なる場合に、DSIM データセットのデバイスタイプを指定します。
サイズをシリンダ単位で指定します。
リカバリ中のデータベースで Adabas Delta Save Facility がアクティブになっている場合は、ADARAI で生成しなければならない可能性のある ADARES COPY 操作に対して DSIMSIZE を指定可能にするため、このパラメータの指定が必要です。
FEOFPL=YES(デフォルト)と指定すると、すべての複数の PLOG データセットからプロテクションログ(PLOG)データが確実にコピーされます。
ニュークリアスがアクティブの場合、ADARAI はプロテクションログを強制的に切り替えます。 次に、ニュークリアスはログデータをコピーするユーザー出口 12 をコールし、ADARAI はコピーが完了するまで待機します。 したがって、FEOFPL=YES を指定する場合は、ADARUN パラメータ UEX12 も指定する必要があることに注意してください。
ニュークリアスがアクティブでない場合は、ADARAI からユーザー出口 12 をコールし、ログデータがコピーされます。
ニュークリアスクラスタ環境では、FEOFPL=YES の動作が異なります。
少なくとも 1 つの Adabas ニュークリアスが使用可能な場合、ADARAI はニュークリアスをコールして PLOG を切り替えます。
Adabas ニュークリアスが使用可能でない場合、ADARAI は手動実行を必要とするジョブを生成します。
どちらでもない場合は、FEOFPL=NO を指定して ADARAI を再スタートする必要があります。
FILE は、リカバリジョブストリームの構築時に取り込む 1 つ以上のデータベースファイルを指定します。 FILE を指定すると、データベースレベルのリカバリではなくファイルレベルのリカバリが行われ、指定されたファイルのみが RECOVER 操作の対象になります。 FILE を指定しないと、すべてのデータベースファイルが取り込まれます(デフォルト)。
JCLLOG は、ユーザー指定の入力ジョブ制御(DDJCLIN 内の JCL または JCLIN 内の JCS)のリストを制御します。 JCLLOG=YES と指定すると、ユーザー指定の入力ジョブ制御エレメントがユーティリティログに出力されます。 デフォルトは、入力ジョブ制御ステートメントのリストなし(NO)です。
OPT=YES と指定すると、ADARAI は特定の世代に対して作成するリカバリジョブを最適化しようとします。つまり、データベースまたはファイルを元の論理状態に戻すために不要なステップを除外しようとします。
OPT=NO と指定すると、リカバリジョブは最適化されません。
注意:
データベース上のスペースが限定されていると、データベースの構築方法が元の方法と異なるため、最適化されたリカバリジョブが失敗することがあります。
この状態が発生した場合、最適化なしで生成されたリカバリジョブを使用するか、リカバリを行う前にデータベースのサイズを増やす必要があります。
PLOGDEV 値は、FEOFPL=YES を指定した場合にのみ使用されます。
PLOGDEV は、ADARUN DEVICE パラメータで指定されたもの(デフォルト)と異なる場合に、PLOG デバイスタイプを指定します。
RELGEN は、リカバリに使用する相対世代番号を指定します。 現行世代は常に、デフォルトである相対世代 "0"(ゼロ)でカップリングされます。 2 世代前、つまり最後に完了した世代の前の世代は、相対世代 "2" として指定されます。
指定された世代は、現在 RLOG に存在している必要があります。 使用可能な現在の RLOG 世代を確認するには、ADARAI LIST 機能を使用します。 ただし、表示される世代には、世代 "1"(RLOG 操作開始後の最初の世代)から始まる昇順の番号が付くことに注意してください。
RESTFILE=NO(デフォルト)と指定すると、記録された ADASAV SAVE FILE= 実行の ADASAV RESTORE FILE=... ジョブステップが DDJCLOUT リカバリジョブストリームに含まれなくなります。 ADARES REGENERATE は ADASAV SAVE FILE=... チェックポイントで停止しないため、このようなジョブステップは含まれません。
RESTFILE=YES と指定すると、記録された ADASAV SAVE FILE=... ユーティリティのすべての実行に対して、リカバリジョブストリームで ADASAV RESTORE FILE=... ジョブステップが作成されます。
注意:
RESTFILE=YES を使用する場合は、世代で作成されたファイルセーブデータセットを保持する必要があります。
RESTFILE=YES および OPT=YES の両方を指定すると、RESTORE ステップまでのリストア済みファイルが無視されるため、RESTORE FILE= によってリカバリ処理時間が短縮されます。
RESTFILE=YES および OPT=NO を指定すると、不要な RESTORE ステップがリカバリジョブに含まれます。 リカバリジョブをこのように生成してから、目的のファイルに関して RESTORE ステップの前にあるすべてのステップを手動で削除してもかまいません。
RLOGDEV は、RLOG ファイルが含まれるデバイスタイプを指定します。 RLOG ファイルが ADARUN DEVICE パラメータで指定されたデバイスタイプ(デフォルトのデバイスタイプ)上に存在する場合は、RLOGDEV を指定する必要はありません。
ADARAI RECOVER,DRIVES=3
RECOVER 機能では、現行世代(0、デフォルト)に基づいて、リカバリジョブストリームを構築します。 ジョブストリームの SAVE RESTORE 部分に、3 つの入力データセット DDREST1、DDREST2、および DDREST3 のステートメントを含めます。
ADARAI RECOVER FILE=3,4,7,8,11 ADARAI RELGEN=2, JCLLOG=YES
リカバリジョブストリームは 3 番目に古い世代に基づいており、データベースファイル 3、4、7、8、および 11 のみのアクティビティが存在し、ファイルレベルのジョブ制御を作成します。 RECOVER では、データセット DDJCLIN からユーティリティログにユーザー指定のジョブ制御も追加します。
ADARAI RECOVER,RELGEN=1,OPT=Y
RECOVER 機能は、最後の世代(現行世代の前にある世代)に基づいてリカバリジョブストリームを構築します。 ADARAI では、リカバリジョブの処理時間を短縮するために不要な処理を削除します。
スケルトンジョブ制御は、DD/JCLIN ファイルに含まれており、RECOVER 機能の入力として読み込まれます。 RECOVER は、スケルトンジョブ制御と RLOG 情報を結合してリカバリジョブストリームを作成します。 スケルトンジョブ制御は、通常、安定しており、操作環境に固有です。
スケルトンジョブ制御内の各機能は、次の形式のステートメントで識別されます。
%%name
%%JCL-ADASAV または %%JCL-STARTNUC などのように、名前は機能に固有です。 ジョブ制御ステートメントは %% 名前ステートメントに続き、次の %%JCL ステートメントで終了します。 各スケルトンセクションには、コメントやプログラム実行など、有効な任意のジョブ制御ステートメントを含めることができます。 これにより、リカバリ処理を柔軟に行うことができます。
ADARAI では、スケルトンジョブ制御内のステートメントの妥当性をチェックしません。 無効なステートメントは、リカバリジョブストリームの実行中にジョブ制御でエラーが発生して初めて判明します。
ジョブヘッダーステートメントは、リカバリジョブストリームの先頭で他のジョブ制御ステートメントの前に配置します。
このジョブ制御は完全なリカバリジョブに関連しており、OS 用の JOB と JOBLIB ステートメントおよび VSE 用の POWER JCL と JOB ステートメントが含まれています。
ジョブトレーラステートメントは、リカバリジョブストリームの最後に配置します。
%%JCL-STARTNUC セクションで推奨されるように ADARUN UTIONLY=YES パラメータを指定してニュークリアスを開始した場合は、このセクションで ADADBS OPERCOM UTIONLY=NO 機能を実行するステートメントを指定して、リカバリ操作の後でデータベースを使用可能にすることがあります(このドキュメントの後にあるスケルトンジョブ制御の例を参照)。
ステップトレーラステートメントは、リカバリジョブストリームの各ステップの後に配置します。
オペレーティングシステムによって異なる DD/KARTE ステートメントは、ADARAI で RLOG から生成される DD/KARTE パラメータの前にある各ジョブステップに含まれます。
z/OS および VSE では、ジョブストリームに DD/KARTE パラメータが含まれていることを、このステートメントで示す必要があります。
この(オプションの)JCL カードは、ADAORD REORDER 処理で問題を回避するために指定します。 プレースホルダとして、ジョブ内の元の DD/FILEA ステートメントに異なる DD/DLBL ステートメントを指定することができます。 指定した場合は、ADAORD REORDER が後で発生したときに、元の DD/FILEA ステートメントの代わりに挿入されます。
このスケルトンセクションは、リカバリジョブストリームでユーティリティジョブステップを作成するために使用します。 DD/JCLIN では、次のユーティリティジョブが使用可能です。
%%JCL-ADADEF | %%JCL-ADAORD |
%%JCL-ADAINV | %%JCL-ADARES |
%%JCL-ADALOD | %%JCL-ADASAV |
各セクションには、次のものが含まれています。
ユーティリティ実行の必要に応じて、DD/ASSOR1、DD/DATAR1、DD/WORKR1、DD/SORTR1、DD/TEMPR1 などのデータベースファイル
DD/TEMPR1 オーバーフローファイルとして使用する場合の ADALOD 用の DD/FILEA
DD/PRINT および DD/DRUCK ステートメントまたは割り当て
DD/CARD ステートメントまたは割り当ておよび DBID、DEVICE、PROG、SVC などのすべての ADARUN 必須パラメータ
Adabas ライブラリまたは他のライブラリに関する必要情報
DD/CARD パラメータ、データベースファイル、またはライブラリに、プロシージャまたは区分データセット(PDS)メンバを使用できます。
このジョブ制御は、Adabas ニュークリアスの開始に必要なすべてのステートメントで構成されます。 RECOVER 機能はこのジョブ制御を使用して、最初の再生成ジョブステップの前に(ニュークリアスがすでにアクティブになっていない場合は、アクティブなニュークリアスを必要とする各ユーティリティコールの前に)ニュークリアスを開始するジョブステップを作成します。
このジョブ制御には、以下を含むニュークリアスジョブ全体が取り込まれている必要があります。
ジョブステートメント
プログラム実行ステートメント
ライブラリ定義
データベースファイル定義
ADARUN パラメータを含む DD/CARD 情報
このセクションでは、適切なジョブ入力システム(BS2000 のプロシージャモードの EDT および z/OS の IEBGENER など)にニュークリアスジョブ制御をサブミットする方法も必要になります。 このジョブ制御の例については、このドキュメントの後半にあるスケルトンジョブ制御例の %%JCL-STARTNUC セクションを参照してください。
ニュークリアスが実際にアクティブになるまでリカバリジョブストリームの実行を停止する方法を、このジョブ制御に含めることも重要です。 例えば、データベースに対して CL(クローズ)コマンドを発行するプログラムを作成できます。レスポンスコード 148 によってデータベースがアクティブでないことが示された場合は、プログラムは指定時間待機し、その後、CL コマンドを再発行できます。 プログラムの処理はレスポンスコード 0 が発生するまで続行し、この後、次のリカバリステップが実行可能になります。 この操作は、ADARAI CHKDB ACTIVE 機能を使用して実行できます。
非アクティブなニュークリアスを必要とするユーティリティが検出されるたびに、Adabas ニュークリアスに対して ADAEND を実行するため、RECOVER は %%JCL-ENDNUC ジョブ制御をジョブストリームに挿入します。 ADADBS OPERCOM ADAEND 機能は、ニュークリアスの停止にも使用できます。 ADADBS OPERCOM を使用する場合は、ADADBS OPERCOM 機能の実行に必要なすべてのステートメントがジョブ制御ステートメントに含まれている必要があります。 ニュークリアス開始スケルトンジョブ制御の場合と同様に、ニュークリアスが非アクティブになるまでリカバリジョブストリームの実行を停止する方法も必要になります。この操作は、ADARAI CHKDB INACTIVE 機能を使用して実行できます。
次の特殊なキーワード/ステートメントは、DD/JCLOUT リカバリジョブストリームの世代を制御するため、DD/JCLIN スケルトンジョブ制御で使用されます。
%STEP | (オプションの)%STEP キーワードがプログラム実行ステートメントに含まれていると、%STEP キーワードが含まれているジョブステップごとに、ジョブストリームにステップ番号が生成されます。 ステップ番号は 1 で始まる昇順の番号です。 |
---|---|
%SEQUENTIAL | シーケンシャルファイルのジョブ制御ステートメントを生成する各 %% スケルトンセクションに含まれている必要があります。 ADARAI は、%SEQUENTIAL ステートメントの代わりに、必要なシーケンシャルジョブ制御ステートメントを作成します。 このステートメントが含まれない場合は、処理中にエラーが発生します。 |
%KARTE | Adabas DD/KARTE パラメータが生成される各 %% スケルトンセクションに含まれている必要があります。 ADARAI は、%KARTE ステートメントの代わりに、必要な DD/KARTE パラメータを作成します。 このステートメントが含まれない場合は、処理中にエラーが発生します。 |
%DBID | (オプションの)%DBID キーワードがプログラム実行ステートメントに含まれていると、5 桁のデータベース ID 番号が生成されます。 データベース番号が 5 桁未満の場合は、先行ゼロが埋め込まれます。 |
ADARAI には、自動生成されるリカバリジョブをサブミットする前にユーザーが変更できるようにするため、ユーザー出口 UEXRAI が用意されています。 必要な変更としては、デバイスタイプやボリューム名などがあります。
UEXRAI は、DDJCLOUT に JCL レコードが書き込まれる直前に JCL レコードを取得します。
ユーザー出口をコールするには、レジスタを次のように設定してください。
R1 | DDJCLOUT にまもなく書き込まれる JCL レコード行 |
R13 | 72 バイトの標準レジスタセーブエリア |
R14 | リターンアドレス |
R15 | エントリポイント |
リカバリジョブストリームを開始する前に、リカバリデータベースとリカバリジョブストリームのステータスをチェックします。
既存のニュークリアスセッションが終了したこと
セッションエントリが ID テーブルから削除されたこと
注意:
残りの DIB エントリまたは保留中のニュークリアスセッションの自動再スタートは、初期 RESTORE
ステップで自動処理されるため無視できます。
すべての必須のデータベースコンポーネント(ASSO、DATA など)が、少なくとも 1 回はフォーマットされていること
リカバリする世代中で変更されたすべてのコンポーネントを、世代の開始時点で有効なサイズおよびデバイスタイプに割り当て、フォーマットします。
サイズが変更されたすべてのコンポーネントを、リカバリする世代中に使用された最大サイズに割り当て、フォーマットします。
ニュークリアスがアクティブになっていること ADARAI によって作成されたリカバリジョブは、ニュークリアスを自動的に開始しません。
RECOVER 機能では RLOG を読み込むのみであり、変更を加えないため、ADARAI RECOVER 機能が中断された場合には、最初から再スタートできます。
通常のリストア/再生成処理と同じように、RECOVER 機能で作成された DD/JCLOUT リカバリジョブストリームを再スタートできます。 ただし、ジョブストリームを編集し、正常に完了したユーティリティ操作のステップを削除する必要がある場合があります。 この操作の後、(中断の原因が取り除かれた場合は)失敗したユーティリティ操作から開始してリカバリ処理を続行できます。
中断されたリカバリジョブは、常に最初から再スタートできます。 また、エラー原因およびエラーを含むジョブステップによっては、失敗したジョブステップまたは少し前のステップからリカバリジョブを再スタートすることもできます。