ライブラリー・オブジェクト

ライブラリーとは、関連するオブジェクトをグループ化し、 それらのオブジェクトの使用時に名前で見つけられるようにするために使用されるオブジェクトです。 したがって、ライブラリーはオブジェクトのグループの登録簿のようなものです。

ライブラリーを使用することによって、 オブジェクトを何らかの意味を持つグループにグループ化することができます。 例えば、セキュリティー上の要件、バックアップ上の要件、または処理上の要件などによって類別し、 それぞれのオブジェクトのグループを作ることができます。 1 つのライブラリーに入れることのできるオブジェクトの数、 およびシステム上のライブラリーの数については、 使用可能なディスク記憶域の量により制約されます。

ライブラリーによるオブジェクトのグループ化は論理的なグループ化です。 ライブラリーを作成する時点で、 そのライブラリーをどのユーザー補助記憶域プール (ASP) または独立補助記憶域プール (独立ディスク・プール) に作成するかを指定することができます。 そのライブラリーに作成されるすべてのオブジェクトは、 そのライブラリーと同じ ASP に作成されます。 ライブラリー内のオブジェクトは必ずしも互いに物理的に隣接しているわけではありません。 ライブラリーのサイズや、他のオブジェクトのサイズは、 記憶域内の隣接する使用可能なスペースの大きさによって制限されることはありません。 システムは、オブジェクトがシステムに保管されるときに、 そのために必要なスペースを見つけ出します。

ほとんどのタイプのオブジェクトは、その作成時点でライブラリーに入れられます。 CRTLIB の AUT パラメーターは、ライブラリーの共通権限を定義します。 CRTAUT パラメーターは、ライブラリーに作成されるオブジェクトのデフォルト権限を指定します。 オブジェクトを作成するコマンドが AUT パラメーターに *LIBCRTAUT を指定している場合、 オブジェクトの共通認可はライブラリーに指定されていた作成権限になります。 ほとんどのタイプのオブジェクトはライブラリーから別のライブラリーに移すことができますが、 この場合、1 つのオブジェクトを同時に複数のライブラリーの中に存在させることはできません。 オブジェクトを別のライブラリーに移しても、 記憶域内でのオブジェクトの位置が変わるわけではありません。 ライブラリー (つまり、どのライブラリーからオブジェクトを見つけ出すか) が変わるだけです。 さらに、ほとんどのタイプのオブジェクトは、名前を変更することができ、 またライブラリーから別のライブラリーにコピーすることもできます。

ライブラリー名は、 オブジェクト名とは異なるレベルでオブジェクトを識別するための名前として使用することができます。 既に述べたように、オブジェクトはその名前とタイプとによって識別されます。 このオブジェクト名をライブラリー名で修飾することにより、 オブジェクトをさらに限定して識別することができるようになります。 オブジェクト名とライブラリー名とを組み合わせたものを、 そのオブジェクトの修飾名 と呼びます。 修飾名は、 オブジェクトの名前とそのオブジェクトが入っているライブラリーの名前をシステムに知らせます。

次の図は、2 つのライブラリーと、その中の各オブジェクトの修飾名を示しています。

異なるライブラリーには、 同じ名前で同じタイプのオブジェクトを 2 つ存在させることができます。 ただし、オブジェクト・タイプが異なる場合を除いて、 同じライブラリーの中に同じ名前のオブジェクトが 2 つあってはなりません。 この設計によって、オブジェクトを名前で参照するプログラムの場合に、 そのプログラム自体を変更しなくても、いくつかの異なるオブジェクト (名前は同じで保管されているライブラリーが異なるもの) を、 同一のプログラムの実行によって処理することができます。 また、新しいオブジェクトを作成するユーザーは、 他のライブラリーの中にどのような名前のオブジェクトがあるかについて注意を払う必要はありません。 例えば、次の図で、MONTHUPD (月次更新) という名前の新しいファイルは、 ライブラリー OELIB には追加することができますが、 ライブラリー ACCTLIB に追加することはできません。 ライブラリー ACCTLIB の中には、 タイプがファイルである MONTHUPD という名前のオブジェクトが既に存在しているので、 同じ名前のファイルを作成しようとするとエラーになります。

1 つのライブラリーの中では、 オブジェクトはオブジェクト名およびタイプによって識別されます。 CL コマンドは 1 つのオブジェクト・タイプに対してだけ使用されるものが多いので、 そのようなコマンドではオブジェクト・タイプは必ずしも明示的に指定する必要はありません。 ただし、複数のオブジェクト・タイプに使用されるコマンドの場合には、 オブジェクト・タイプを明示的に指定しなければなりません。

統合ファイル・システムを使用するオブジェクトはディレクトリー内にあって、 ライブラリーを検索する代わりにパス名パターンまたはオブジェクト名パターンを 使用することによって検索することができます。 また、オブジェクトを見つけるためにこれらのディレクトリーを使用することもできます。