システムは、ライブラリー・リストを使用してオブジェクトを見つけます。
修飾名を指定することができるコマンドでは、
ライブラリー名の指定を省略することができます。
この指定を省略すると、次のいずれかの処理が行われます。
- 作成コマンドの場合には、オブジェクトはそのタイプに応じて、
ユーザーの現行ライブラリー (*CURLIB) またはシステム・ライブラリーのいずれかに作成されます。
例えば、プログラムは *CURLIB に作成され、そこに入れられます。
権限リストはシステム・ライブラリー QSYS に作成され保管されます。
- 作成コマンド以外のコマンドの場合には、システムは通常、
ライブラリー・リストを使用してオブジェクトを見つけます。
IBM® i オペレーティング・システムによって使用されるライブラリー・リストは、
次の 4 つの部分から成り立っています。
- システム部分
- ライブラリー・リストのシステム部分には、システムに必要なオブジェクトが入っています。
- プロダクト (実行) ライブラリー
- ライブラリー・リストには 2 つのプロダクト・ライブラリーを含めることができます。
システムはプロダクト・ライブラリーを使用して、
コマンドの処理を QSYS 以外のライブラリーに依存する言語およびユーティリティーをサポートします。
ユーザー・コマンドおよびユーザー・メニューの場合も、関連するオブジェクトが確実に見つかるように、
コマンド作成 (CRTCMD) コマンドおよびメニュー作成 (CRTMNU) コマンドの
PRDLIB パラメーターでプロダクト・ライブラリーを指定することができます。
プロダクト・ライブラリー (例えば、QRPG など) はシステムにより管理され、
必要に応じてライブラリー・リスト内のプロダクト・ライブラリーとして確保されている位置に入れられます。
現行ライブラリー、
またはライブラリー・リストのユーザー部分にあるライブラリーと重複していても構いません。
例えば、プロダクト・ライブラリーを使用するコマンドまたはメニューを開始したときに、
プロダクト・ライブラリーがライブラリー・リストにあるとします。
新しいコマンドが終了するか、ユーザーが新しいメニューの使用を終えるまで、
システムはライブラリー・リスト内のプロダクト・ライブラリーを、
新しいプロダクト・ライブラリーに置き換えようとします。
- 現行ライブラリー
- 現行ライブラリーは、ライブラリー・リスト内の任意のライブラリーと重複していてもよく、
そうでなくても差し支えありません。
多くのコマンドで、現行ライブラリーを示す *CURLIB をライブラリーとして使用して、
ジョブの現行ライブラリーとして指定されているライブラリーを指定することができます。
ライブラリー・リストに現行ライブラリーが存在せず、
しかも *CURLIB がライブラリーとして指定されている場合には、QGPL が使用されます。
現行ライブラリー変更 (CHGCURLIB) コマンド
またはライブラリー・リスト変更 (CHGLIBL) コマンドを使用して、
ジョブの現行ライブラリーを変更することができます。
- ユーザー部分
- ライブラリー・リストのユーザー部分には、
システムのユーザーおよびアプリケーションにより参照されるライブラリーが入っています。
ユーザー部分、プロダクト・ライブラリー、および現行ライブラリーは、
システムの各ジョブごとに異なっていても差し支えありません。
ライブラリーの数は、250 個までに制限されています。
次の図は、ライブラリー・リストの構成の一例です。
注: 原始ステートメント入力ユーティリティー (SEU) を使用する場合には、
システムはライブラリー QPDA をプロダクト・ライブラリー 1 に入れます。
SEU を使用してソースの構文検査を行う場合には、2 番目のプロダクト・ライブラリーがプロダクト・ライブラリー 2 に追加されます。
例えば、RPG ソースの構文を検査する場合には、QPDA がプロダクト・ライブラリー 1、QRPG がプロダクト・ライブラリー 2 になります。
これ以外のシステムでは多くの場合、プロダクト・ライブラリー 2 は使用されません。