ADACDC ユーティリティを初めて実行する場合、下記の構文を使用して、次回以降の実行の入力のために有効なトランザクションファイルを作成する入力トランザクションファイル(CDCTXI)を指定しないでおくか、またはダミーを指定してください。
ADACDC RESETTXF,PHASE=BOTH
RESETTXF オプションを指定すると、存在しないまたはダミーの入力トランザクションファイルが無視され、プライマリ入力データが読み込まれ、入力データに基づいてプライマリ出力が生成されます。
初回実行時に入力トランザクションファイルが作成された後は、このユーティリティの実行にはユーティリティ名 ADACDC のみが必要になります。PHASE パラメータのデフォルト値は BOTH です。 パラメータオプションについては、以下で説明されています。
FILE パラメータを使用すると、ユーティリティによって処理され、出力ファイルに書き込まれるファイルを制限できます。
PHASE=1 の場合は、指定ファイルに関係するレコードのみが抽出ファイルに書き込まれます。
PHASE=2 または BOTH の場合は、指定ファイルに関係するレコードのみがプライマリ出力ファイルに書き込まれます。
注意:
PHASE=2 のときは、PHASE=1 で作成された抽出ファイルを入力として指定する必要があります。
このパラメータを指定しない場合、ユーティリティによって全ファイルが処理されます。
現時点では、スパンドレコードは ADACDC ユーティリティでサポートされていません。 ただし、IGNORESPANNED パラメータが ADACDC の実行時に指定された場合、ADACDC 処理でスパンドレコードは無視され、警告メッセージが発行され、処理が継続します。 リターンコード "4" が返されます。
ADACDC 処理では、通常、同じ ISN のすべての削除トランザクションと挿入トランザクションが統合され、その ISN の更新トランザクションが 1 つ生成されます。 ただし、ISN パラメータを指定すると、削除トランザクションと挿入トランザクションは、それぞれ個別にプライマリ出力ファイル(CDCOUT)に記録されます。 このため、ISN パラメータを指定して ADACDC ユーティリティを使用すると、プライマリ出力ファイルで生成されるレコード数が大幅に増加する場合があります。
通常、ADACDC では、完了トランザクションの一部であるレコードまたは完了コマンドの一部であるレコード(EXU ユーザーの場合)のみが処理されます。
PHASE=1 または PHASE=BOTH のときに NOET オプションを指定すると、完了トランザクションは処理されません。 入力は、NOET オプション付きまたはなしでプロテクションログ(PLOG)をすでに処理したフェーズ 1 からの抽出ファイルであるため、PHASE=2 の場合には NOET は効果がありません。
NOET オプションを指定した場合、データベースに加えられた変更が PLOG で検出されると、この変更内容は即時に処理され、抽出ファイル(PHASE=1)またはプライマリ出力ファイル(PHASE=BOTH)に書き込まれます。
注意: このオプションを指定すると、入力 PLOG の終了時点で完了していないトランザクションに関係する更新が、プライマリ出力ファイルに書き込まれます。 |
PHASE パラメータでは、ユーティリティで必要となる入力および生成する出力を決定します。
PHASE=1 の場合は、シーケンシャル PLOG 入力が読み込まれ、PHASE=2 で処理される中間抽出ファイルが生成されます。
PHASE=2 の場合は、PHASE=1 で生成された抽出ファイルが読み込まれ、ファイル変更のデルタを含むプライマリ出力ファイルが生成されます。
PHASE=BOTH(デフォルト)の場合は、シーケンシャル PLOG 入力が読み込まれ、変更のデルタを含むプライマリ出力ファイルが直接生成されます。このとき、抽出ファイルの読み込みおよび書き込みは行われません。
詳細は、「処理フェーズと結果ファイル」セクションを参照してください。
ADACDC は、PLOG が PLOG ブロック/番号順に読み込まれるように、プライマリ入力データをチェックします。 チェックエラーが発生すると、ユーティリティの実行は終了します。
ADACDC は、チェック結果を複数回の実行にまたがって維持するために、入力トランザクションファイルおよび出力トランザクションファイルを保存します。 これらのファイルは、ユーティリティを次回実行するとき、未完了のトランザクションまたはコマンド(EXU ユーザーの場合)に関係するレコード更新を追跡するために使用されます。 通常、このような未完了のトランザクションまたはコマンドは、次のシーケンシャル PLOG を指定してユーティリティを実行すると、完了します。
ただし、PLOG を PLOG 順序どおり以外に処理する必要が発生し、トランザクションファイルの情報を削除しても安全な場合は、RESETTXF オプションを使用してトランザクションファイルをリセットできます。この場合、今回の実行ではチェックは行われず、未完了のトランザクションおよびコマンドはすべて無視されます。 ADACDC では、入力トランザクションファイルの情報は無視され、ジョブの終了時に出力トランザクションファイルに書き込まれます。
注意: PLOG シーケンスが中断された場合、トランザクションファイルに記録されている未完了トランザクションに関係するレコード更新は、そのまま保持されます。 |
標準の ADACDC 処理では、プライマリ出力ファイルは ISN 順で生成されます。 通常、この処理は正常に行われます。 ただし、ADADBS または ADALOD ISNREUSE オプションを指定してデータベースファイルを作成した場合、エラー(レスポンス 98)が発生することがあります。 これらのエラーは、ISN が再利用されたことにより、異なる ISN で同一のユニークディスクリプタキー(UQ)が使用された複数のトランザクションが PLOG に存在する可能性がある場合に発生します。
これらの問題を解決するには、次の手順を実行する必要があります。
ISN パラメータを指定して ADACDC ユーティリティを実行します。 これにより、プライマリ出力ファイルには、ISN 別に変更がまとめられる代わりに、変更の詳細なリストが出力されるようになります。 このように実行した後も、プライマリ出力ファイル内のデータは ISN 順になります。
このデータをデータウエアハウスまたはその他のアプリケーションに適用する前に、プライマリ出力ファイル(CDCOUT)を PLOG 順にソートします。 このソートは、CDCOUT データに対して 8 バイトのオフセット 52 で実行する必要があります。
データが PLOG 順にソートされたら、そのデータをデータウエアハウスまたはその他のアプリケーションに適用することができます。
他の ADACDC ジョブを実行する前に、トランザクションファイル(CDCTXI/CDCTXO)を PLOG 順にソートし直します。 この処理を行わない場合は、ADACDC の今後の実行に影響を及ぼす可能性があります。
トランザクションファイル(CDCTXI/CDCTXO)を正しい順序にするには、実際にはソートを 2 回実行する必要があります。その手順を次に示します。
1 回目のソートでは、CDCE レコードを PLOG 順にソートします。 このソートは、4 バイトのオフセット 68、4 バイトのオフセット 16 の順で実行する必要があります。 例としては、次のようなものがあります。
SORT FIELDS=(68,4,BI,A,16,4,BI,A),RECORD TYPE=V,LENGTH=32756
2 回目のソートでは、トランザクションファイルを CDCC、CDCE、CDCX 順に戻します。 このソートは、4 バイトのオフセット 4 で実行する必要があります。
2 回のソートを実行したら、今後の ADACDC ジョブでそのトランザクションファイルを処理できるようになります。