AS400ライブラリの確認方法|仕組みとオブジェクト管理を初心者向けに解説

AS400(IBM i)を触り始めると、最初につまずきやすい言葉が「ライブラリ」です。Windowsのフォルダと似ている部分もありますが、AS400ではライブラリの中にプログラム、ファイル、コマンド、ソースファイルなどのオブジェクトが入ります。

ライブラリの考え方を理解すると、ソースの場所、コンパイル後のプログラム、実行時に参照されるファイルを追いやすくなります。

ライブラリとは

ライブラリーリストは上から順番に探す

初心者にライブラリーリストを説明するなら、私はまず「AS400はライブラリーリストの上から順番にオブジェクトやファイルを探していく」と伝えます。

AS400のライブラリーリスト表示画面。QSYS、QSYS2、QHLPSYS、QUSRSYS、QGPL、QTEMPなどが表示されている例
ライブラリーリストは、AS400がどの順番でライブラリーを参照するかを見るための重要な確認ポイントです。本番対応やデータ修正では、対象ライブラリーを間違えないために必ず確認します。
ライブラリーリストの一番上から、オブジェクトやファイルを探していく」と説明します。

同じ名前のプログラムやファイルが複数のライブラリーにある場合、どのライブラリーが先に見つかるかで、実行されるプログラムや参照されるファイルが変わります。だから、AS400 / IBM i の保守ではライブラリーリスト確認がとても重要です。

DSPLIBL
WRKLIB LIB(TESTLIB)
WRKOBJ OBJ(TESTLIB/TEST001R) OBJTYPE(*PGM)
WRKOBJ OBJ(TESTLIB/TESTFILE) OBJTYPE(*FILE)

コマンドを覚えるだけなら簡単です。しかし本番保守で大事なのは、今どのライブラリーを見ているのか、これからどのライブラリーのオブジェクトを触るのかを確認することです。

ライブラリー指定ミスが怖い場面

ライブラリー指定ミスが怖いのは、テスト環境と本番環境を取り違える場面です。テストのつもりで本番ライブラリーを触る、本番確認のつもりでテストライブラリーを見ている。この取り違えは、画面の見た目が似ているほど起こりやすくなります。

特に怖いのは、SQLや CLRPFM のような更新・削除系の作業です。ファイル名が合っていても、ライブラリー名が違えば別物です。私はSQL修正や本番作業では、最後は目視でライブラリー名を確認します。

危ない場面何が起きるか確認すること
同名ファイルがあるテスト用のつもりが本番ファイルを更新するライブラリー名、DSPLIBL、対象ファイル
同名プログラムがある古いプログラムや別環境のプログラムを実行するWRKOBJ、ライブラリーリスト、コンパイル環境
SQLでライブラリー省略意図しないライブラリーのテーブルを参照・更新するSQL内のスキーマ指定、実行環境
CLRPFMの対象ミス消してはいけないデータをクリアする対象ライブラリー、対象ファイル、バックアップ

販売管理システムではライブラリー確認が業務事故を防ぐ

販売管理システムでは、受注、出荷、在庫引当、売上、請求、店舗連携、物流連携など、多くの処理がAS400上で動いています。ライブラリーを間違えると、単に技術的なミスでは済まず、業務データの不整合につながることがあります。

たとえば、テスト用データを見ているつもりで判断した結果、本番では対象件数が違うことがあります。逆に、本番データをテストのつもりでクリアしてしまえば大事故です。だから本番作業では、画面右上のマシン名、ライブラリーリスト、対象ライブラリー、対象ファイルをセットで確認します。

若手に伝えたいライブラリー確認の考え方

若手に「ライブラリーだけはここを見ろ」と言うなら、私は環境とライブラリーリストを見ろと言います。どのマシンに入っているのか、どのライブラリーが上位にあるのか、対象オブジェクトはどこにあるのか。ここを確認できないまま本番の更新系作業をしてはいけません。

AS400は古く見えるかもしれませんが、ライブラリーの考え方を理解すると保守はかなりやりやすくなります。逆にここを曖昧にしたまま作業すると、コマンドを知っていても危ない作業者になります。

ライブラリは、IBM i上のオブジェクトをまとめる入れ物です。業務システムごと、会社ごと、開発環境と本番環境ごとにライブラリを分けることが多いです。

たとえば、TESTLIB というライブラリの中に、RPGソースを入れる QRPGLESRC、CLソースを入れる QCLSRC、コンパイル済みプログラム、物理ファイルや論理ファイルが配置されることがあります。

ライブラリとオブジェクトの関係

用語 説明
ライブラリ オブジェクトをまとめる入れ物
オブジェクト プログラム、ファイル、コマンドなどの実体
ソースファイル ソースメンバーを格納するファイル。例: QRPGLESRC
メンバー ソースファイル内の1つのソース。例: TEST001R

よく使う確認コマンド

  • WRKLIB TESTLIB : ライブラリを確認する
  • WRKOBJ TESTLIB/*ALL : ライブラリ内のオブジェクトを確認する
  • WRKMBRPDM FILE(TESTLIB/QRPGLESRC) : ソースメンバーを確認する
  • DSPOBJD OBJ(TESTLIB/TEST001R) OBJTYPE(*PGM) : オブジェクト詳細を確認する
  • ADDLIBLE ライブラリ名 : ライブラリリストに追加する

ライブラリリストとは

ライブラリリストは、プログラム実行時にオブジェクトを探す順番です。同じ名前のファイルやプログラムが複数のライブラリにある場合、ライブラリリストの順番によって参照される実体が変わります。

開発環境ではテスト用ライブラリを先に置き、本番環境では本番ライブラリを参照する、といった使い分けをします。障害調査では、どのライブラリのオブジェクトを実行しているかを必ず確認します。

ソースとプログラムの違い

RPGソースは、通常 QRPGLESRC などのソースファイル内のメンバーとして保存されます。これをコンパイルすると、実行可能な *PGM オブジェクトが作成されます。ソースを直しただけでは実行内容は変わらず、コンパイルして初めてプログラムに反映されます。

保守で注意すること

  • 同名オブジェクトが別ライブラリにないか確認する
  • 修正したソースと実行しているプログラムのライブラリが一致しているか確認する
  • 本番ライブラリを直接変更しない運用なら、開発・検証・本番の流れを守る
  • コンパイル前後でオブジェクトの更新日時を確認する

基本操作を覚えるには、AS400の基本コマンド10選もあわせて確認してください。

まとめ

AS400のライブラリは、単なるフォルダではなく、実行環境や参照順序に関わる重要な仕組みです。保守では、ソースメンバー、コンパイル後のオブジェクト、ライブラリリストの3つをセットで確認することが大切です。

25年以上AS400に関わって感じること

私は2000年に新卒でIT業界に入り、流通業界の販売管理システムでAS400(IBM i)の開発・保守・追加要望対応を続けてきました。入社当時から「AS400は近いうちになくなる」と言われていましたが、今も現場では現役です。C言語研修では苦労しましたが、RPGに触れたときは「これならやっていける」と感じました。この記事も、そうした現場経験をもとに初心者向けに整理しています。

この記事の現場視点

ライブラリやオブジェクトの考え方は、最初は独特に感じます。ただ、慣れてくるとAS400らしい整理された仕組みに見えてきます。私はこのあたりが、オープン系より扱いやすいと感じた理由の一つです。

ライブラリで迷わないための確認ポイント

AS400のライブラリは、Windowsのフォルダのように見えますが、実務では権限、ライブラリリスト、同名オブジェクトの優先順位が問題になることがあります。環境差が原因のエラーでは、どのライブラリを参照しているかを確認するだけで解決に近づくことがあります。

  • 本番、検証、開発でライブラリ名が分かれているか
  • ライブラリリストの順番が想定通りか
  • 同じ名前のプログラムやファイルが別ライブラリにないか
  • ソースと実行オブジェクトの更新日が合っているか

よくある質問

ライブラリを見ればプログラムの場所はすぐわかりますか?

オブジェクトの場所は確認できますが、実行時にどれが使われるかはライブラリリストの順番にも左右されます。調査時は、単に存在確認をするだけでなく、実行ジョブが参照している順番まで確認すると安全です。

このサイトの運営方針は、このサイトについて にまとめています。

AS400 / IBM i の保守・学習で迷ったら

現場でのエラー調査、RPG保守、基本コマンドの学習でつまずいた時は、記事内の確認ポイントを見ながら、状況を整理してみてください。

お問い合わせ

ライブラリリストは本番作業の事故防止に直結する

ライブラリリストは、AS400が上から順番にオブジェクトやファイルを探しに行くための参照順です。若手に説明するときは、「一番上から探して、先に見つかったものを使う」と伝えるのが一番わかりやすいです。

本番対応やデータリカバリーで一番怖いのは、対象ライブラリを間違えることです。同じ名前のファイルやプログラムが複数環境にある場合、ライブラリリストの見方を誤ると、テスト環境のつもりで本番を触る、または本番のつもりでテストを見てしまう事故につながります。

確認するもの見る理由危ない例
DSPLIBL現在の参照順を確認する想定外のライブラリが上位にある
WRKOBJどのライブラリのオブジェクトを見ているか確認する*LIBL指定で別環境を参照する
ジョブ記述バッチ実行時の環境を見る対話環境とバッチ環境が違う

ライブラリは単なる入れ物ではなく、環境の境界線です。保守担当者は、コマンド実行前に必ず対象環境を確認する癖を持つべきです。