多くのコンピューティングプラットフォームでは すべてがファイルですが、対照的にIBM iではすべてがオブジェクトです。[1]
概要
IBM i オブジェクトは、オブジェクト指向プログラミングのオブジェクトと類似点がありますが、相違点もあります。類似点は、何かにストレージが割り当てられる場合、その何かは特定のタイプであり、特定のプログラム セットのみがそのオブジェクトに対して操作できるという点です。相違点は、IBM i オブジェクトは継承できず、オブジェクト タイプ セットは固定されており、IBM のみが新しいオブジェクトを作成できるという点です。
オブジェクトタイプの数は膨大で、ユーザーが使用できるのはそのうちのごく一部です。人間が判読できるオブジェクト タイプは、常に先頭にアスタリスクが付いた 3 ~ 6 文字のニーモニックです。以下は、よく使用されるオブジェクトとそのニーモニックの短いリストです。
- *LIB: ライブラリ (ディレクトリとストリーム ファイルを除く以下のすべてのものが格納される場所。ライブラリは他のライブラリ内に存在することはできません)。
- *PGM: プログラム(コンパイル言語: CL、RPG-IV、C、C++、COBOL など。言語間のインターフェース制限はありません)。
- *MODULE: モジュール (上記のコンパイル言語からプログラムにリンク可能。ここでも言語間のリンク可能性に制限はありません)。
- *SRVPGM: サービス プログラム ( Microsoft Windowsの DLL ファイルに類似した、1 つ以上のモジュールの動的セット)。
- *BNDDIR: バインディング ディレクトリ (モジュールとサービス プログラムのリストを保持し、プログラムの作成時に使用されます)。
- *CMD: コマンド (プログラムを呼び出すために使用されるオブジェクトで、ユーザーがパラメータを要求できるようにします。コマンド定義言語で作成できます)。詳細については、「制御言語」を参照してください。
- *MENU: メニュー (GO コマンドでアクセス)。
- *FILE: ファイル (IBM i ファイルは、サブタイプに応じて、データ、入出力デバイス、およびソース コードに使用できます)。
- *DTAARA: データ領域 (高速アクセスのために小さなデータ項目を保存するために使用される小さなストレージ ビット)。
- *DIR: ディレクトリ ( UnixおよびMicrosoft Windows の階層型ファイル システムに相当する統合ファイル システムの一部)。
- *STMF: ストリーム ファイル (ほとんどのUnixおよびMicrosoft Windowsユーザーに馴染みのある、ディレクトリにのみ保存される従来のファイル)。
- *JRN および *JRNRCV: ジャーナルおよびジャーナル レシーバー (ファイル、データ域、およびストリーム ファイルへの変更をジャーナル処理するために使用されます)。
- *USRPRF: ユーザー プロファイル (ユーザーがシステムにサインオンできるようにします)。
- *JOBD: ジョブの説明(ジョブの送信/開始時に使用)。
- *SBSD: サブシステムの説明 (サブシステムの起動時に使用されます。ユーザー ジョブが実行される場所です)。
- *JOBQ: ジョブ キュー (サブシステムで実行するバッチ ジョブをキューに入れるために使用されます)。
- *LIND: 回線記述(通信回線: イーサネット、トークンリングなど)。
- *CTLD: コントローラ記述 (回線、ワークステーションなどの通信コントローラ)。
- *DEVD: デバイス記述 (回線、ワークステーション、プリンタ、テープ ドライブなどの通信デバイス)
- *DTAQ: データ キュー (他のジョブによる高速取得のためにデータ エントリをキューに入れるために使用されます)。
- *MSGQ: メッセージ キュー (ユーザーにメッセージを送信するために使用されますが、データ キューのように使用することもできます)。
- *OUTQ: 出力キュー (プリンターへの出力をキューに入れるために使用されます)。
- *USRSPC: ユーザー空間 - 任意のサイズ (最大 16T) の汎用データを含むオブジェクト。
図書館
IBM iのライブラリ(*LIB) は、他のオブジェクトを追跡するためのシステムディレクトリとして使用されるオブジェクトです。オブジェクトはライブラリ内に保存されるのではなく、ライブラリはオブジェクトの名前空間として使用されます。ライブラリは「システム」オブジェクトであるため、特定のライブラリ「名」のインスタンスは 1 つだけ可能です。ライブラリは、QSYS ライブラリに保存されているかのように表示されます。
標準ライブラリ
一般的に、オペレーティング システムで使用するために IBM によって作成されたすべてのライブラリは、文字「Q」で始まります。
IBM 標準ライブラリ:
- QSYS - システム親ライブラリ
- QSYS2 - CPI (1 インチあたりの文字数) のシステム ライブラリ
- QHLPSYS - ユーザー向けオンライン ドキュメント ライブラリ
- QTCP - TCP 接続ユーティリティ
- QAFP - 高度な機能印刷
- QGPL - 汎用ライブラリ
- QTEMP - ジョブ固有の一時ライブラリ(ジョブ終了時に削除)
ライブラリリスト
ライブラリ リスト ( *LIBL) は、オブジェクトを検索する場所のデフォルト セットを指定するオブジェクトです (他のオペレーティング システムのPATHメカニズムに似ています)。このオブジェクトは単独では存在せず、常にジョブやジョブ記述 ( ) などの別のオブジェクトに関連付けられています。一部のジョブ記述では、ライブラリ リストがシステム値 にあることを示す*JOBD特別な値 が指定されています。OS /400 V5R1以降、ライブラリ リストのユーザー部分には最大 250 個のライブラリ名を含めることができます。それより前は、25 個のライブラリしか含めることができませんでした。
*SYSVALQUSRLIBL
ジョブのライブラリ リストは、次の 4 つのセクションで構成されます。
- システム部分: 常に最上部にあり、、、などのシステム ライブラリが含まれます。
QSYSシステム部分には、最大 15 個のライブラリ名を保持できます。システム部分のデフォルトの内容は、システム値で指定されますQHLPSYS。コマンドを使用して、現在のジョブのシステム部分の内容を と異なる内容に変更できます。QUSRSYSQSYSLIBLQSYSLIBLCHGSYSLIBL - 製品部分: 製品ライブラリを指定する CL コマンドが実行されると、そのライブラリはコマンドの実行中、ライブラリ リストの製品部分に追加されます。製品部分はシステム部分の後に続き、O/S は最大 2 つのライブラリを保持します。
- 現在のライブラリ: ユーザー プロファイルに関連付けられた特別なライブラリで、一度にリストに表示できるのは 1 つだけです。このライブラリは、ユーザー部分が何に変更されても、プログラマーが自分の個人用ライブラリをリストの先頭に置くのに便利です。
CHGCURLIBコマンドを使用してローカルで変更できます。今後のすべてのジョブでユーザー用に変更するには、CHGUSRPRFコマンドを使用します。 - ユーザー部分: すべてのアプリケーションライブラリを含むライブラリ リストの最後の部分。通常、このリストはジョブ記述からジョブに割り当てられますが、バッチ ジョブの場合は、
SBMJOBコマンドのパラメータを使用してこれをオーバーライドできます。ジョブのライブラリ リストは、(ライブラリ リストの編集)、(ライブラリ リストの変更)、(ライブラリ リスト エントリの追加)、および(ライブラリ リスト エントリの削除) コマンドINLLIBLを使用してローカルで変更できます。EDTLIBLCHGLIBLADDLIBLERMVLIBLE
参考文献
- ^ 「AS/400 オブジェクトとライブラリ」 。2018年5 月 28 日閲覧。
- AS/400 オブジェクト
