アプリケーションは、UNIX タイプ API または階層ファイル・システム (HFS) を使用して、光ディス ク・ファイル・データを操作できます。
アプリケーションは、ファイルを開き、ファイル上で操作し、最後にファイルを閉じます。アプリケーショ ンがファイル・データまたは属性を変更した場合、光ディスク・ファイル・システムは、その変更を IBM i 記憶装置内の一時システム・オブジェクトに保管します。光ディスク・ファイル・システムは、アプリケ ーションがファイルを閉じるまで、光ディスクを更新しません。複数のアプリケーションが並行してファイ ル・データまたは属性を変更する場合、光ディスク・ファイル・システムは、最後の更新アプリケーション がファイルを閉じた時点で、光ディスクを更新します。アプリケーションは、HFS バッファー・データ強
制 API または UNIX タイプ fsync() 関数のいずれかを発行することにより、ファイルおよび属性データを
強制的に光ディスクに書き込むこともできます。
v 光ディスク・ファイルへの読み取りおよび書き込みアクセスのシミュレーション v ファイル・ロックおよび共用
v バイト・ロックおよび共用
v 光ディスク・ファイル・データのランダム処理
v 光ディスク・ファイルへの可変長データ・バッファーの書き込み v 光ディスクの読み取りおよび書き込みの削減
関連情報:
アプリケーション・プログラミング・インターフェース (API) 保留光ディスク・ファイル:
光ディスク・ファイル・システムがクローズ機能時に光ディスクを更新できない場合、操作は失敗し、ファ イルは保留としてマークされます。
光ディスク・ファイル・システムは、ファイルをオープンと見なしたままの場合があります。ファイルをオ ープンと見なしている場合、光ディスク・ファイル・システムでは、すでにファイルをオープンしたアプリ ケーションの操作を継続できます。いずれの場合も、ファイルが保留されている間、新規アプリケーション はファイルをオープンできません。システムが障害の原因になった条件の訂正が可能で、ファイルがオープ ンのままの場合、アプリケーションは再度、ファイルのクローズを試みることができます。クローズ機能が 成功すれば、システムによるファイルの保留をなくなります。
注:
1. HFS アプリケーションが通常 (normal) オープン・タイプを指定した場合、HFS API を使用したファイ ルへのアクセスができなくなります。ストリーム・ファイルのオープン (Open Stream File) コマンドに 関するオープン・タイプについての、オンライン・ヘルプ情報を参照してください。
2. UDF (Universal Disk Format) 媒体上でファイルのクローズに失敗した場合、システムは保留ファイルを 作成しません。
関連資料:
アプリケーション・プログラミング・インターフェース (API) 保留光ディスク・ファイルの回復:
ここでは、保留光ディスク・ファイルを回復する方法について説明します。
オープンされた光ディスク・ファイルに対するクローズ操作が失敗し、ファイルが保留になった場合、保留 ファイルは、次の方法のいずれか、または両方で処理できます。
v 保管要求を試行する
v ファイルを解放して、再度オープンできるようにする
ただし、クローズ失敗の原因が訂正された場合は、ファイルはクローズできるようになり、最初に保管また は解放する必要はありません。この状態では、ファイルは自動的に保管および解放され、保留状況が解除さ れます。保留ファイルを解放した後、オープン・ファイル・ハンドルが有効のままの場合は、ファイルをク ローズできます。
保留光ディスク・ファイルを保管または解放する前に、「保留光ディスク・ファイルの処理
(WRKHLDOPTF) (Held Files Optical Files (WRKHLDOPTF))」画面から「使用情報の表示」を選択すること によって、すべてのオープン・インスタンスを表示できます。これは、ファイルの適切な処置を判別する際 の重要なステップになることがあります。例えば、ファイルの最新バージョンを保管しないことを決定する
前に、同じファイルに対して他のアプリケーションが並行更新を行っていたかどうかを知ることは有用で す。最後の更新アプリケーションがファイルをクローズする前に、ファイルは解放されただけで、追加の更 新は行われなかった場合、更新はすべてのユーザーをロールバックする必要があります。
保留光ディスク・ファイルの保管:
保留光ディスク・ファイルを保管すると、データとファイル属性を光ディスクに物理的に書き込みます。保 管先は、オープン時に指定したオリジナル・ボリューム、ディレクトリー、およびファイル名、あるいは新 規の光ディスク・ファイル・パスを選択できます。
一部の状態では、オリジナル記憶域宛先にファイルを保管できます。例えば、ファイルを通常オープン・タ イプでオープンすると、ファイルは HFS API ではアクセス不能になり、オープン・ファイル・ハンドルは 有効でなくなります。ただし、ファイルを保留にする原因になった条件が訂正された場合、保留ファイルを 宛先として指定してデータを保管できます。
アプリケーションが異なるファイル・パスを宛先として指定する場合は、既存のファイルがないことが必要 です。該当する場合、そのボリューム、ディレクトリー、およびファイル名で保管を試みる前に、そのよう なファイルを削除できます。
保留光ディスク・ファイルを保管してから解放して、以後のアプリケーションがファイルを使用できるよう にする必要があります。
保留光ディスク・ファイルの解放:
現在ファイル上に他の活動状態のジョブによるロックが保持されていない場合にのみ、保留ファイルを解放 できます。
保留光ディスク・ファイルを解放すると、保留状況をクリアし、新規アプリケーションがファイルをオープ ンすることを許可します。また、一部のアプリケーションがさらにファイルを更新しない限り、光ディス ク・ファイル・システムを、光ディスクを更新する義務からも解放します。ファイルが解放された後、ユー ザーのプロセスが活動状態のままなら、ファイルをクローズできます。
解放後に 1 つ以上のアプリケーションがファイルの変更を続ける場合、光ディスク・ファイル・システム は、最後の更新アプリケーションがファイルをクローズした後で、光ディスクの更新を試みます。ただし、
クローズ障害の原因が訂正されていない場合、ファイルは再度、保留になることが予想されます。
保留ファイルは保管操作の後で、または保管操作を行わずに解放できます。正常な保管操作を達成できない 場合、データをディスクに書き込めないことと、ファイルをクローズする以外の追加処置を取らずにこの結 果を受け入れることを確認すれば、ファイルを解放できます。
保留光ディスク・ファイルを解放しない場合、自動クローズ操作の時点でファイルの保管に成功しない限 り、プロセスが終了してもファイルは保留のままです。保留ファイルの場合、この状態が起きるのは、オー プン・タイプが永続で、前のクローズ障害の原因が解決された場合のみです。
保留光ディスク・ファイル機能のインプリメント:
保留光ディスク・ファイルを保管または解放するかどうかを決める前に、保管および解放の決定に影響を与 える情報の表示が必要な場合があります。
「保留光ディスク・ファイルの処理 (Work with Held Optical Files)」画面は、この手段を提供し、さらに 保留光ディスク・ファイルを保管および解放する機能も備えています。保管および解放機能は、HFS 制御
「保留光ディスク・ファイルの処理 (Work with Held Optical Files)」画面は、システム上の保留光ディス ク・ファイルをリストおよび管理するための便利な方法を提供します。「保留光ディスク・ファイルの処理 (Work with Held Optical Files)」画面にアクセスするには、保留光ディスク・ファイルの処理
(WRKHLDOPTF) コマンドを使用します。
「保留光ディスク・ファイルの処理 (Work with Held Optical Files)」画面上のオプションを選択して、フ ァイルの使用 (オープン・インスタンス) の表示、および保留ファイルの保管と解放を行います。デフォル トで、「保留光ディスク・ファイルの処理 (Work with Held Optical Files)」画面上の 「保管」を使用する と、保管した後で自動的に保留ファイルを解放します。
「保管」および「解放」によって提供される機能は、プログラミング・トピックの制御ファイル・システム API の光ディスク固有機能「保留光ディスク・ファイルの保管」および「保留光ディスク・ファイルの解 放」としても使用可能です。
「保管」とは異なり、制御ファイル・システム API の「保留光ディスク・ファイルの保管」機能は、保管 後に自動的に保留ファイルを解放しません。そのため、後で明示的な解放要求を行う必要があります。
関連情報:
プログラミング
保留光ディスク・ファイル・サポートの使用不可設定:
IBM i は、保留光ディスク・ファイル・サポートを使用可能にして出荷されます。必要に応じて、光ディ
スク属性の変更 (CHGOPTA) コマンドを使用すると、使用不可に設定できます。
保留光ディスク・ファイル・サポートが使用不可の場合、ファイルを光ディスクに保存するために失敗した ときに、保留ファイルは作成されません。このオプションを使用している場合、保存に失敗したファイルの 回復手順を管理するのは、ユーザー・アプリケーションの役割です。次のシナリオを考えてください。
シナリオ 1
アプリケーションが書き込み操作のために光ディスク・ファイルをオープンし、ファイルにデータを書き込 みます。ファイルをクローズしようとしたときに、光ディスクが満杯のため、クローズに失敗します。
保留ファイル・サポートが使用可能
ファイルはオープンのままですが、保留になります。ジョブが終了する前に正常にクローズしなか った場合、ファイルはジョブが終了した時点でクローズします。ファイルは解放されるまで、保留 のままになります。
保留ファイル・サポートが使用不可
ファイルはオープンしたままですが、保留されません。ジョブが終了する前に正常にクローズしな かった場合、ファイルはジョブが終了した時点でクローズします。ファイルは保留にならず、保留 ファイルに関連した資源 (仮想光ディスク・ファイル) はすべて解放されます。
シナリオ 2
アプリケーションが書き込みのために光ディスク・ファイルをオープンし、ファイルにデータを書き込みま す。アプリケーションは、不揮発性記憶装置上にデータを安全に確保するために、バッファー・データ強制 (Force Buffered Data) API を発行します。その後、システムの電源が落ちます。
保留ファイル・サポートが使用可能
システムの内部プログラム・ロード (IPL) が完了した後、ファイルは保留光ディスク・ファイルと