バージョン 8.1.3
 —  ユーティリティ  —

機能概要

ADACDC ユーティリティでは、1 つ以上のシーケンシャルプロテクションログを入力として使用し、入力プロテクションログがカバーしている期間中に加えられたすべてのデータベース変更のデルタを含むプライマリ出力ファイルを最終的に出力として生成します。 変更のデルタとは、該当期間中に各 ISN に加えられた最新の変更のことであり、プライマリ出力ファイルに出力されます。

注意:

  1. ADACDC の実行時に ISN パラメータが指定されている場合、デルタは生成されません。 代わりに、個別の削除トランザクションと挿入トランザクションがそれぞれプライマリ出力ファイルに書き込まれ、変更のデルタは生成されません。
  2. 現時点では、スパンドレコードは ADACDC ユーティリティでサポートされていません。 ただし、IGNORESPANNED パラメータが ADACDC の実行時に指定された場合、ADACDC 処理でスパンドレコードは無視され、警告メッセージが発行され、処理が継続します。 リターンコード "4" が返されます。

ADACDC の実行時に出力されたプライマリ出力ファイル内のデータはデータウエアハウスの代入プロシージャの入力として定期的に使用され、データベース全体のコピーではなく、データベースに対する変更がデータウエアハウスデータベースに適用されます。 これにより、データウエアハウスがより頻繁に、より短時間で更新されるため、格納される情報の精度を高めることができます。

ADACDC ユーティリティを実行するには、次の要件を満たしている必要があります。

ADACDC は、このソートパッケージを使用して ISN 順に出力を生成します。したがって、すべての変更が ISN 順にプライマリ出力ファイルに書き込まれます。

このドキュメントでは、次のトピックについて説明します。


処理フェーズと結果ファイル

ADACDC では、2 つのフェーズでシーケンシャルプロテクションログを処理します。 フェーズ 1 とフェーズ 2 は、別々に実行することも両方を同時に実行する(デフォルト)こともできます。

プライマリ出力ファイル内のデータレコードは非圧縮形式ですが、抽出ファイル内のデータレコードは圧縮形式になります。 これらの形式の詳細は、『Adabas ユーティリティマニュアル』のADACMP の圧縮/圧縮解除に関するセクションを参照してください。

プライマリ出力ファイルと抽出ファイルは、可変長レコードを含む標準ファイルであり、オペレーティングシステムに依存します。

フェーズ 1 と抽出ファイル

フェーズ 1 で、プロテクションログからの更新が分析され、CDCE と呼ばれる標準構造の接頭辞が付けられます。 ファイルのレコードは、定数の CDCE 接頭辞の後に、圧縮されたレコード情報が含まれているという形式となっています。

通常、これらのレコードは、ファイルの各 ISN の最新の更新を確定するために外部ソートルーチンに渡されます。 特定のファイルと ISN の組み合わせの最新の変更のみが、抽出ファイルに書き込まれます。 ただし、ADACDC の実行時に ISN パラメータが指定されている場合、更新は引き続き ISN 順でソートされますが、集約は行われません。 代わりに、ISN のすべての変更トランザクションが抽出ファイルに記録されます。

フェーズ 1 を個別に実行すると、抽出ファイルが作成されます。このファイルを使用すると、PLOG データを一度処理することによって、必要に応じて、ファイル選択条件などに基づいて複数のプライマリ出力ファイルを生成できます。 このオプションは、目的に応じて異なるファイル変更が必要となる場合に役立ちます。

フェーズ 1 処理の実行中に、出力用に抽出ファイルがオープンされます。 レコードがソート処理から出力されると、次のいずれかの条件を満たしている場合に、各ファイルと ISN の組み合わせに対する更新内容が抽出ファイルに書き込まれます。

指定されたファイルを制御するユーティリティ処理がない場合は、期間中の上記以外のファイルと ISN の組み合わせに対する全更新が破棄されます(「プライマリ出力ファイルへのチェックポイントの書き込み」を参照)。

注意:
ADACDC ユーザー出口(後述の説明参照)がファイルと ISN の既存の組み合わせでレコードを追加する場合、同一ファイル上に重複した組み合わせを持つことができます。 ユーザー出口によって追加または修正されたレコードについては、そのことが CDCE 構造にマークされます。

フェーズ 2 または両フェーズとプライマリ出力ファイル

ADACDC の両フェーズを同時に実行するとき、またはフェーズ 2 処理だけを実行するときは、プライマリ出力ファイルが使用されます。

ファイルの各レコードは、接頭辞 CDCO の後に、圧縮解除されたレコード情報が含まれるという形式となっています。 何らかの理由でレコードを圧縮解除できない場合は、警告メッセージが発行され、圧縮レコードがプライマリ出力ファイルに書き込まれます。 レコードの圧縮解除がエラーになったときは、CDCO 構造のフラグでユーザープログラムに通知されます。

注意:
ADACDC ユーザー出口(後述の説明参照)がファイルと ISN の既存の組み合わせでレコードを追加する場合、同一ファイル上に重複した組み合わせを持つことができます。 ユーザー出口によって追加または修正されたレコードは、CDCO 構造にマークされます。

プライマリ出力ファイルへのチェックポイントの書き込み

ADACDC ユーティリティの主要な用途は、一定の期間内に修正されたファイル内の各 ISN について、最新の変更内容をまとめた出力ファイルを提供することです。 実行時に ISN パラメータが指定されている場合、ADACDC ユーティリティの主要な用途は、一定の期間内に修正されたファイル内の各 ISN の変更内容を含む出力ファイルを提供することです。

ファイルの内容は、単純に変更される以外に、ユーティリティが実行されることによって、根本的に変更される場合があります。 例えば、ファイルが削除されると、ファイル内の全 ISN も削除されます。この場合、単に ISN の最新の変更内容を提供しても、ファイルの状態は正確に表されません。

このため、次のチェックポイントが必要に応じてプライマリ出力ファイルに記録され、書き込まれます。この場合、出力レコードには関連するインジケータが付けられます。

ADASAV RESTORE FILE          File created
ADAORD STORE FILE            File created
ADALOD LOAD FILE             File created
ADALOD UPDATE FILE           File updated
ADADBS DELETE FILE           File deleted
ADADBD REFRESH FILE          File deleted

これらの処理はファイルとファイルの状態に根本的な影響を及ぼすことがあるため、他の更新に関係する処理が行われたときは、チェックポイントがプライマリ出力ファイルに書き込まれます。

ADACDC では、上記の各チェックポイントまで全 ISN の最新の更新内容を保持します。 つまり、プライマリ出力ファイルに複数のチェックポイントが書き込まれる場合は、ファイルと ISN の 1 つの組み合わせが複数回記録される場合があります。 ファイルを削除、再作成、または大量更新する前にファイルのビューを完成し、そのコピーを作成することが要求される多くのデータウエアハウスパッケージに対して、このことが役立ちます。

Top of page

プライマリ入力データ

プライマリ入力データは、データベースから直接作成されたか、または ADARES PLCOPY によって非シーケンシャルプロテクションログから作成された、シーケンシャルプロテクションログで構成されます。

注意:
現時点では、スパンドレコードは ADACDC ユーティリティでサポートされていません。 ただし、IGNORESPANNED パラメータが ADACDC の実行時に指定された場合、ADACDC 処理でスパンドレコードは無視され、警告メッセージが発行され、処理が継続します。 リターンコード "4" が返されます。

ADACDC では、このデータを処理することによって、次のことが保証されます。

注意:
PLOG 番号が変わって前との番号差が 1 より大きい場合は、警告メッセージが発行され、処理が続行されます。オンラインセーブを使用しているときにこのような状態になりますが、エラーではありません。

これらのチェックのいずれかでエラーが発生すると、ユーティリティの実行は終了します。

Top of page

プライマリ出力ファイル

プライマリ出力ファイルは、入力プロテクションログがカバーしている期間中に追加、更新、または削除された全データベースレコードを含むシーケンシャルファイルです。

レコードが複数回変更された場合、最後の変更のみが出力ファイルに出力されます。ADACDC は、ソート処理を使用して、同一レコードに対する複数回の変更を識別します。 ただし、ADACDC の実行時に ISN パラメータが指定されている場合、ISN のすべての変更がプライマリ出力ファイルに出力されます。ADACDC は、引き続きソート処理を使用して、プライマリ出力ファイルを ISN 順に書き込みます。

各プライマリ出力ファイルのレコードは、固定長のレコード接頭辞と、その後に続く非圧縮形式のデータベースレコードで構成されます。 非圧縮データの形式は、ADACMP DECOMPRESS 機能の出力に対応します。

プライマリ出力レコードの接頭辞は CDCO DSECT で記述されます。 構造は次のとおりです。

バイト 説明
0~1 レコード長(2 進数)
2~3 ゼロ
4~7 定数 'CDCO'
8~9 データベース ID
10~11 ファイル番号
12~15 更新レコードの ISN
16~19 非圧縮データ長(バイト単位)
20~47 最新のレコード更新ユーザーのコミュニケーション ID(28 バイト)
48
変更インジケータ  
X'04' レコードの追加
X'08' レコードの更新
X'0C レコードの削除
X'10' ファイルの生成
X'14' ファイルの更新
X'18' ファイルの削除またはリフレッシュ
49
フラグ(ビットごとに設定)
X'80' ユーザー出口によるレコードの追加
X'40' ユーザー出口によるレコードの修正
X'20' レコードの非圧縮エラー(圧縮のまま)
50 データベースバージョンインジケータ
51 予約済み(将来的に使用される予定)
52~59 4 バイトの STCK(4 バイトの 16 進カウンタが続く) ユーザーは、必要に応じて、この 8 バイトのフィールドでソートして、プライマリ出力ファイルのレコードを PLOG 順に戻すことができます。 この処理が必要な場合についての詳細は、このセクションの「ADACDC での ISNREUSE の使用」を参照してください。
60~67 予約済み(将来的に使用される予定)
68-... 非圧縮レコードデータ

Top of page

トランザクションファイル

ADACDC では、入力データチェック結果を複数回の実行をまたいで保持するために、処理する最新のデータベース ID、PLOG 番号、および PLOG ブロック番号を含む情報をトランザクションファイルのトランザクション制御レコードに保存します。 RESETTXF オプションの指定がない場合、この情報は最新の入力を確認するために使用されます。「RESETTXF:入力トランザクションファイルのリセット」(ADACDC オプションパラメータに関するセクション)を参照してください。

実際には ADACDC は 2 つの異なるトランザクションファイル、すなわち入力トランザクションファイルと出力トランザクションファイルを識別します。 どちらのトランザクションファイルも可変長レコードを含む標準ファイルであり、オペレーティングシステムに依存します。

入力トランザクションファイルの処理

入力処理の段階で、ADACDC は、ソートプログラムへの入力トランザクションファイルを処理します。

入力トランザクションファイルの制御レコードに従って、0 以上のレコードが検索されます。 これらのレコードは、ユーティリティの前回の実行で完了していないトランザクションに関係するデータベース更新です。 これらのレコードは入力の一部として再処理され、通常、ユーティリティの次回実行時にシーケンシャルプロテクションログを指定すると、該当トランザクションは完了状態になります。 したがって、プロテクションログ内の順序は非常に重要です。順序が正しくないと、更新は未処理のままになります。

トランザクションファイルには、最新のフェーズ 1 の実行時に NOET オプションが指定されたかどうかも記録されます。 ADACDC では、このオプションが前回実行したとき以降変更されたことを検出すると、入力トランザクションファイルの制御レコードの情報を使用します。ただし、他のレコードのトランザクション情報はすべて無視されます。 これは、NOET が変更されると、プライマリ出力ファイルまたは抽出ファイルに書き込まれるデータに矛盾が発生する場合があるためです。 この状況が発生すると、ADACDC から警告が発行されます。

出力トランザクションファイルの処理

ソートプログラムからの出力処理が開始されると、入力トランザクションファイルがクローズされ、出力トランザクションファイルがオープンされます。 そして、出力トランザクションファイルに制御レコードが書き込まれ、その後に未完了トランザクションまたは未完了コマンド(NOET オプションが有効な場合、または EXU ユーザーの場合)に関係する更新が書き込まれます。 処理が終了すると、トランザクションファイルがクローズされます。

単一トランザクションファイルの使用

入力トランザクションファイルと出力トランザクションファイルとして同一ファイルを使用できます。ただし、出力トランザクションファイルへの書き込み時(すなわち、ソートユーティリティからの出力の処理中)にエラーが発生すると、この時点では入力トランザクションファイルが存在しないため、期待する結果を得ることができません。

このため、ユーティリティを実行する前に、エラーが発生した場合にリストアできるように、トランザクションファイルをバックアップしておく必要があります。

または、プログラムによるファイルの更新時には常にファイルの新バージョンを作成する機能がオペレーティングシステムに備えられている場合、その機能を使用して新バージョンを作成することもできます。

Top of page