• 検索結果がありません。

同一ジョブまたは活動化グループ内のデータベース・ファイルの共用

ドキュメント内 rbafopdf.ps (ページ 129-136)

デフォルトでは、データベース管理システムは多くのユーザーが 1 つのファイルを同時に読み取ったり、

変更したりすることを許可します。また、SHARE パラメーターを指定することによって、同じジョブまた は活動化グループにおいてファイルの共用を行うことができます。

データベース・ファイルをオープンすることによって、以下のように同じジョブまたは活動化グループにお いてファイルの共用を行うことができます。

v 同じプログラムにおいて複数回

v 同じジョブまたは活動化グループ内の別個のプログラムにおいて

注: Integrated Language Environment® モデルにおけるオープン共用に関する詳細は、ILE 概念 の資料 を参照してください。

ファイルの作成、ファイルの変更、およびデータベース・ファイルの一時変更コマンドの SHARE パラメ ーターを使用すると、ジョブまたは活動化グループで共用 (ファイル、その状況、その位置、およびその記 憶域の共用を含む) を行うことができます。ジョブまたは活動化グループでファイルを共用するならば、必 要とされる主記憶域の量や、ファイルのオープン/クローズに必要な時間を削減することになり、それによ ってパフォーマンスを向上させることができます。

SHARE(*YES) パラメーターを使用すれば、同じジョブまたは活動化グループで実行される 2 つ以上のプ

ログラムは、オープン・データ・パス (ODP) を共用できます。オープン・データ・パスとは、ファイルに 対するすべての入出力操作に使用されるパスであり、ある意味で、プログラムをファイルに結び付けるもの です。SHARE(*YES) パラメーターを指定しない場合は、ファイルのオープン時に毎回、新規のオープン・

データ・パスが作成されます。同一ジョブまたは活動化グループにおいて活動ファイルが複数回オープンさ れる場合は、現在オープンされているファイルの活動 ODP を使用できます。新規のオープン・データ・パ スを作成する必要はありません。

これにより、初回のオープン後にファイルをオープンするのに必要な時間や、ジョブまたは活動化グループ に必要な主記憶域の量が削減されます。ODP を共用するには、同じファイルの最初のオープンと他のオー

プンについて、 SHARE(*YES) を指定する必要があります。良く設計された (パフォーマンスの点で) アプ リケーションでは、通常、同じジョブまたは活動化グループの複数のプログラムでオープンされるファイル と、 ODP を共用します。

SHARE(*NO) を指定すると、システムはファイルの ODP を共用しません。通常、これはほとんど使用し

ないファイル、または特定のプログラムで固有の処理を必要とするファイルについてのみ指定します。

注: 高水準言語プログラムでは、ファイルが共用されていないかのようにオープンまたはクローズの操作が 実行されます。ファイルの共用の指定は、高水準言語プログラムでは行わずに、 SHARE パラメーターを 使用して、ファイルが同じジョブまたは活動化グループで共用されていることを示します。SHARE パラメ ーターは、データベース・ファイルの作成、変更、または一時変更コマンドだけで指定します。

ジョブまたは活動化グループで共用されるファイルのオープンの考慮事項:

ここでは、同じジョブまたは活動化グループで共用されるデータベース・ファイルのオープンに関する考慮 事項を示します。

v ジョブまたは活動化グループにおいて初めて共用ファイルをオープンするときには、必ずファイルのそ の後のオープンに必要なすべてのオープン・オプションを指定するようにしてください。共用ファイル のそれ以降のオープンについて指定したオープン・オプションが、共用ファイルの最初のオープンにつ いて指定したオプションと一致しない場合には、エラー・メッセージがプログラムに送られます。(プロ グラム、あるいは「データベース・ファイルのオープン OPNDBF」コマンドまたは「Query ファイルの

オープン OPNQRYF」コマンドのパラメーターに変更を加えて、矛盾したオプションを取り除くことに

よって、この状態を訂正することができます。)

たとえば、PGMA はジョブまたは活動化グループにおいて FILE1 をオープンする最初のプログラム で、PGMA だけがファイルの読み取りを必要とします。ただし、PGMA は PGMB を呼び出し、PGMB は同じ共用ファイルからレコードを削除します。PGMB が共用ファイルからレコードを削除するため、

PGMA は、それ自身もレコードを削除するかのようにファイルをオープンする必要があります。高水準 言語で正しい指定を行うことによって、これを実現することができます。(高水準言語によっては、これ を実現するために、実行されることのないファイル操作ステートメントを使用しなければならないこと もあります。詳細については、高水準言語の該当のトピックを参照してください。) ファイル処理オプシ ョンは、OPNDBF コマンドおよび OPNQRYF コマンドの OPTION パラメーターに指定することもでき ます。

v ジョブまたは活動化グループ内でのファイルの共用が、望ましくない場合もあります。たとえば、1 つ のプログラムが到着順でファイルからのレコードを必要とし、別のプログラムがキー順でレコードを必 要とする場合です。このような状況では、オープン・データ・パス (ODP) を共用してはなりません。

「データベース・ファイルによる一時変更 (OVRDBF)」コマンドで SHARE(*NO) を指定して、ジョブ または活動化グループ中でファイルが共用されないようにすることができます。

v 実行用ライブラリーにある共用ファイルの最初のオープンの後で UPDPROD(*NO) を指定してデバッ グ・モードに入ると、そのファイルのそれ以降の共用オープンでは、元の ODP が共用され、ファイル の変更が許可されます。これを防ぐためには、デバッグされるファイルをオープンする前に、 OVRDBF コマンドで SHARE(*NO) を指定してください。

v 共用ファイルの最初のオープンにコミットメント制御を使用すると、それに続くすべての共用オープン でもコミットメント制御を使用する必要があります。

v キー・フィードバック、挿入キー・フィードバック、または重複キー・フィードバックがそれ以降のフ ァイルの共用オープンに望ましい場合には、これらのフィードバックのタイプのいずれかを全オープン に指定しなければなりません。

v プログラムで、または OVRDBF コマンドでライブラリー名を指定しない (*LIBL が使用される) 場合 には、システムは、*LIBL が指定されている同じ共用ファイルの最後のオープン以降、ライブラリー・

リストが変更されていないものとみなします。ライブラリー・リストが変更されている場合には、

OVRDBF コマンドにライブラリー名を指定して、正しいファイルがオープンされるようにしなければな

りません。

v 全オープンに指定するレコード長は、ファイルの共用オープンでこれより大きいレコード長が指定され ている場合でも、それ以降の共用オープンで使用されるレコード長となります。

v 共用ファイルの最初のオープンで指定された一時変更およびプログラム仕様は処理されます。それ以降 のオープンで指定された一時変更およびプログラム仕様は、 OVRDBF コマンドの SHARE または

LVLCHK パラメーターで指定されたファイル名または値を変更するものを除いて、無視されます。

v OPNQRYF コマンドを使用する最初のオープンで指定する一時変更は、OPNQRYF コマンドにより処理

されるファイル、ライブラリー、およびメンバーの名前を変更するのに使用できます。OVRDBF コマン ドで指定されたパラメーター値は、TOFILE、MBR、LVLCHK、および SEQONLY を除き、OPNQRYF コマンドによって無視されます。

v OPNDBF および OPNQRYF コマンドは、以下の規則に従って、オープン有効範囲 (OPNSCOPE) パラメ ーターで指定されたレベルに ODP の範囲を限定します。

– システムは共用オープンを、まず活動化グループで、次にジョブで検索します。

– 活動化グループに範囲が限定された共用オープンは、活動化グループ間で共用することはできませ ん。

– ジョブに範囲が限定された共用オープンは、一度にいくつの活動化グループであろうと、ジョブの間 ずっと共用できます。

CPF4123 診断メッセージには、全オープンとそれ以降の共用オープンの間に発生する可能性のある不一致

が示されます。これらの不一致は共用オープンの失敗の原因とはなりません。

注: OPNQRYF コマンドは、ジョブまたは活動化グループ内の既存の共用 ODP を決して共用しません。共

用 ODP がすでにジョブまたは活動化グループに OPNQRYF コマンドで指定したものと同じファイル、ラ イブラリー、およびメンバー名で存在する場合は、システムはエラー・メッセージを送信し、Query ファイ ルはオープンされません。

ジョブまたは活動化グループで共用されるファイルの入出力の考慮事項:

ここでは、同じジョブまたは活動化グループで共用されるデータベース・ファイルの処理に関する考慮事項 を示します。

v 1 つの共用ファイルに対して、オープン・データ・パスは 1 つしか許可されないため、ファイルを共用 するジョブまたは活動化グループ内のすべてのプログラムに対して、ただ 1 つのレコード位置が保持さ れます。プログラムが読み取り操作または読み取り後更新操作を用いてレコードの位置を設定してか ら、この共用ファイルを使用する別のプログラムを呼び出しているという場合は、呼び出されたプログ ラムが呼び出し側プログラムに戻る時点でレコード位置が移動していたり、レコード・ロックが解除さ れていたりすることがあります。この場合には、予期しないレコード位置またはロック状態のため、呼 び出し側プログラムにエラーが起こることがあります。ファイルを共用する場合には、ユーザーが責任 を持って、レコード位置やレコード・ロックを設定し直し、レコード位置とレコード・ロック状態を管 理します。

v 共用ファイルが最初に更新操作のためにオープンされる場合、そのファイルを共用するそれ以降のすべ てのプログラムがレコード・ロックを要求するとは限りません。ファイルを使用する各プログラムに必 要なレコード・ロックのタイプは、システムによって判別されます。システムは、データ保全性を保ち ながらロック競合を最小に抑えようとします。

ドキュメント内 rbafopdf.ps (ページ 129-136)