データセキュリティのため、アーカイブプログラム自体は、データベース内のいかなるデータも削除することはできません。したがって、アーカイブデータを削除するには、別の削除プログラムを使用する必要があります。
削除プログラムは、汎用モジュールを使用してアーカイブを読み込んだ後、データベース内のデータを削除します。これにより、アーカイブ中のデータ損失がなくなり、オンラインでのアーカイブが可能となります。
削除プログラムは、必要に応じて調整することが可能です。削除するデータオブジェクトのデータは、直接削除プログラムから取り出すか、論理データベースを経由して取り出すことができます。アーカイブファイルからのデータの読み込みは、
ADK 汎用モジュール(機能グループ ARCH )によって、オブジェクト全体について行います。 アーカイブカスタマイズの制御パラメータによって、アーカイブプログラムによりアーカイブファイルが閉じられると同時に、削除プログラムを自動的に呼び出すかどうか、およびインデックスを更新するかどうかを指定することができます( アーカイブ内のデータオブジェクトのアクセス - インデックス、 インデックス登録およびアーカイブの個々のデータオブジェクトにアクセスするための使用も参照してください)。また、アーカイブのカスタマイズで削除プログラムのテストおよび稼動バリアントを登録することもできます。削除プログラムが処理するのは、常に1つのアーカイブセッションファイルだけです。複数の削除プログラムを平行して実行し、各削除プログラムについて1つのアーカイブセッションファイルを処理することが可能です。
ガイドライン
削除プログラムは、アーカイブファイルの読み込みによって、どのデータをデータベースから削除するかを決める必要があります。これによって、アーカイブに保存され、読み取れたデータだけが、データベースから削除されることを保証します。
これらのデータを削除するためには、アーカイブクラスの汎用モジュールを呼び出す必要があります。それらの汎用モジュールは、“
COMMIT WORK ”せず、すなわち、データを直ちに削除せずに、“ PERFORM ON COMMIT ”を呼び出します。削除プログラムは、汎用モジュール
ARCHIVE_GET_CUSTOMIZING_DATA によってオブジェクトカウンタの値を得る必要があります。この汎用モジュールは、 COMMIT WORK の前に削除プログラムによってデータオブジェクトがいくつ呼び出されるかを制御します。汎用モジュールの呼び出し順序
1.
削除の初期化 - ARCHIVE_OPEN_FOR_DELETE− 読み込むアーカイブファイルのオープン
− アーカイブアクセスのためのハンドルの提供
− アーカイブファイルに示されたすべてのアーカイブクラスのインクルード
− アーカイブ管理におけるステータス情報の設定
− アーカイブリンクへのアーカイブファイルのパス
2.
アーカイブファイルからの次のデータの読み込み - ARCHIVE_GET_NEXT_OBJECT− アーカイブファイルからのアーカイブデータオブジェクトの読み込み
− データパケットをともなうアーカイブクラスの供給
− 標準クラスへのデータコンテナの提供

この汎用モジュールは、データオブジェクトが提供されなくなるまで、ループ中で(繰返し)
3.
データベース内のアーカイブデータの削除4.
削除終了 - ARCHIVE_CLOSE_FILE− アーカイブファイルのクローズ
− インクルードされたアーカイブクラスの解放
− 現在ハンドルの破棄