Ind.登録/Arc.内のD.O.へアクセスのためのInd.使用 

インデックスは通常、アーカイブ処理の中で削除プログラムによって更新されますが、この更新は、既存のアーカイブファイルについて遡及的に行うことも可能です。

以下の条件が満たされていなければなりません。

アーカイブオブジェクトの定義において登録インデックスフラグが設定されていること

− アーカイブを書き込むときに、一意の値が汎用モジュール ARCHIVE_NEW_OBJECTのパラメータ OBJECT_IDに渡されていること。この値は、インデックスの登録のために使用します。

削除プログラムにおけるインデックス登録

アーカイブファイルから削除するためにデータオブジェクトを読み込んだ後で、インデックスエントリを書き込むには、汎用モジュール ARCHIVE_ADMIN_SAVE_INDEX を呼び出します。この汎用モジュールに、汎用モジュール ARCHIVE_GET_INFORMATION を使ってあらかじめ取り出したアーカイブオブジェクト、インデックスエントリおよびアーカイブファイルキーの名前を渡します。技術的な方法については、プログラム例 RSARCH06 を参照してください。

インデックスエントリの形式についての制約はありません。必要に応じて作成した文字列を渡すことができます。もちろん、その文字列の構成は一定に保つ必要があります。

この文字列の値は、アーカイブの書き込み時に、パラメータ OBJECT_ID によってアーカイブファイルに渡すことが可能で、汎用モジュール ARCHIVE_GET_NEXT_OBJECT の呼び出し時には、アーカイブファイルからコピーすることができます。

インデックス保存のための汎用モジュール( ARCHIVE_ADMIN_SAVE_INDEX )を呼び出す前に、汎用モジュール ARCHIVE_GET_CUSTOMIZING_DATA によって、 MAINTAIN_INDEX の値を得る必要があります。それによって、インデックスの登録を外部から制御することが可能となり、必要のないエントリを阻止します。

この値は、任意のアーカイブセッションの前に、 アーカイブカスタマイズで該当するアーカーブオブジェクトについて更新されます。

遡及的なインデックス構築

プログラム RSARCH15 によって、あるアーカイブオブジェクトの個別のアーカイブセッションのアーカイブデータオブジェクトを、遡及的にインデックスに入力することができます。以下の手順に従ってください。

1. プログラム RSARCH15 を実行します。アーカイブオブジェクト名の入力項目が表示されます。

2. インデックスを更新するアーカイブオブジェクトの名前を入力して、プログラムを実行します。このアーカイブオブジェクトについて実行されたすべてのアーカイブセッションのリストが、ダイアログボックスに表示されます。

3. アーカイブセッションをマークして、 続行を選択します(アイコンをクリック)。選択したアーカイブセッションに含まれるデータオブジェクトが、インデックスに入力されます。

インデックスを使用する個別のデータオブジェクトへのアクセス

インデックスを使用した、アーカイブファイル内の個別のデータオブジェクトへのアクセスは、汎用モジュール ARCHIVE_READ_OBJECT によって行います。アーカイブオブジェクト名およびインデックスエントリを渡してください。 ADK は、アクセスするデータオブジェクトを含むファイルを開き、そのデータオブジェクトをデータコンテナに読み込みます。

インデックスは、アーカイブの書き込み時、または後続の処理で作成される必要があります。

開かれたアーカイブファイルのハンドルを受け取れば、標準クラスメソッド( ARCHIVE_GET_NEXT_RECORD )、または、アーカイブオブジェクトがアーカイブクラスを使用している場合は、アーカイブクラスのメソッドによって、データコンテナにある個別のデータセットにアクセスすることができるようになります。

プログラム RSARCH13 は、インデックスを使用したアクセスの例です。