おさらい:IBM i 上に存在する操作対象は全てオブジェクト
IBM i OSから操作可能(識別可能)な一つ一つはすべて「オブジェクト」とよばれます。
ほかのOSとの違いとしては、
・データベース(テーブル、ビュー、SQL関連のオブジェクト、ジャーナル(DBログ))等もすべてIBM i OSの管理するオブジェクト
・APサーバー(WebSphere Application Server)やHTTPサーバーの全てのファイル類、その他ミドルウェア、ベンダー製S/W類もIBM i OSの管理するオブジェクト
になる、という点でしょうか。
補足すると狭義のIFS上のテキストファイル、JPEG他イメージファイルetc.もIBM i OSの管理するオブジェクトです。
IBM i OSのオブジェクト管理はデータベース、ユーザープログラム、その他M/W、IBM i OSオブジェクト、etc.に分け隔てなくすべて共通
IBM i OS上で操作可能な一つ一つのオブジェクトはすべてOSが共通の操作体系で管理されている、よって以下のようなIBM i OSが管理するする属性・情報はすべてのオブジェクトが等しく保持しています。
・オブジェクトの作成日時
・オブジェクトの作成ユーザー・プロフィール
・オブジェクトの使用日数
・オブジェクトのバックアップ・復元情報
以下が本稿の本題となりますが、IBM i OSのオブジェクトの作成日・最終使用日・使用日数等を調べる方法になります。
オブジェクトの作成日・変更日・最終使用日・使用日数等は DSPOBJD コマンドで確認できる
DSPOBJD(DiSPlay OBJect Definition)コマンドの使用例はこちら
PF(テーブル)TOKMSPのオブジェクト属性を5250端末上に表示する
DSPOBJD OBJ(DEMOLIB/TOKMSP) OBJTYPE(*FILE) OUTPUT(*)
上記でOUTPUTパラメーターを*PRINT, *OUTFILEとするとスプール、PF(テーブル)に出力できます。*OUTFILEの場合は以下のように出力先PF名も指定します。
DSPOBJD OBJ(DEMOLIB/TOKMSP) OBJTYPE(*FILE) OUTPUT(*OUTFILE) OUTFILE(GOMALIB/OBJINF_1)
OUTFILEのPF名、ライブラリー名は任意です。
くどいですが、DSPOBJDコマンドを使用するとオブジェクトの種類(システムオブジェクトか、データベースオブジェクトか、その他M/Wか、ユーザー作成アプリケーション関連オブジェクトか等)に関係なく基本的には共通の情報を取得できます。
たとえばユーザー作成RPGプログラムの場合は以下のように指定します。
DSPOBJD OBJ(DEMOLIB/IPH110) OBJTYPE(*PGM) OUTPUT(*)
OBJTYPEが*PGMと指定するのが上のPF(テーブル)の場合との相違ですね。
※OUTPUTパラメーターのデフォルトは '*' (5250ディスプレイに表示)なので省略できます。
DSPOBJDコマンドの実行例① テーブル
実行コマンド例はこちら
DSPOBJD OBJ(DEMOLIB/TOKMSP) OBJTYPE(*FILE)
出力例がこちら
5250表示の場合、この画面でOPT欄に 5 または 8 を入力して情報を確認します。以下でいくつか紹介します。
以下の画面ではオブジェクト(例ではDBテーブル)の作成日・作成ユーザー・作成したシステム名(IBM i LPAR毎に固有のシステム名)などが確認できます。
ページをスクロールすると、以下のような画面が表示されます。
この画面では、システム・レベルという欄でこのDBテーブル(TOKMSP)がOS/400 V4R5で作成されたことがわかります。実際操作しているIBM i は7.5なので10世代前のバージョンになりますね(^^;。たぶん2000年代前半に一つ上の画像にある作成ユーザープロフィールSAWADA さんが作成された、と言う事が分かります。
現在の正式サポートではIBM i OSバージョン間の保管・復元は2世代までですので、数回、OSバージョン間の保管・復元を経験しているDBテーブルだと分かります。
上のサンプルではソースファイルの属性がブランクです。これはこのテーブルがSQL DDLで作成された為です。Db2 for i は一般的なSQL DDLではなくCRTPFコマンドという方法で作成されることが一般です(でした)。その場合SQL DDLに相当する情報をDDSというソースに記述してCRTPFコマンド(コンパイルコマンド)で指定してPF(テーブル)を作成します。その情報がこの欄に入ります。
実行例② RPGプログラムの例
上記の画面ではコンパイル時に指定したソース名が確認できます。
(実行例①つづき)最終使用日の確認
ここでは、
最終使用日が2025/03/18とあり当画像作成日の一週間前だったことが分かります。
使用日数カウウント はこのPF(テーブル)が作成・復元されて以降何日間アクセス(READ or UPDATE)があったかが分かります。上の方の画像で2024/1/4に作成(ここでは現在のシステムにバックアップイメージから復元された日付)されたことが分かるので、これ以降の使用日数は95日だとわかります。
(つづき)保管情報の確認
上記画像ではこのPFが2025/3/28にバックアップされたことがわかります。
また、現在のシステムに復元された日付は2023/2/20であることも分かります。
あれ?上の方ではこのPFの作成日は2024/1/4だったはず・・ということですので、おそらくはまず2023/2/20にバックアップからこのPFが復元され、その後2024/1/4にSQL DDLから同じ名前で(再)作成されたのではないか、という予想が成り立ちます。
以上、DBテーブルとRPGプログラムで紹介しましたが、他のオブジェクトもすべて同様な情報を保持しており、DSPOBJDコマンドで確認できます。