2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

IBM i (旧AS400)の自己学習メモ コマンド/ツール/運用 DSPOBJDでAS400上のオブジェクト一覧を確認する

Posted at

自己学習メモインデックス

IBM i (旧AS400)の自己学習メモ インデックス

概要

AS400には、CLプログラムのオブジェクトやRPGプログラムのオブジェクト、PFやLFのオブジェクトやJOBなどのオブジェクトなどが存在します。
基本的にはライブラリなどでオブジェクトの切り分けを行って、ソースコードやコンパイルしたオブジェクト、テーブルのデータなどを区分けしていると思いますが、どういった構成でどんなオブジェクトが存在しているのか、把握しきれないこともあります。
そんな時に便利かなぁと思うのがDSPOBJDコマンドです。

このコマンドで、指定したライブラリ内にあるオブジェクトの一覧情報を取得することができます。

DSPOBJDでYAMAGUCHI1ライブラリ内のオブジェクト一覧を取得

以下のコマンドは、YAMAGUCHI1ライブラリ内にあるオブジェクト一覧を、QTEMP/OBJLSTに出力します。
QTEMPは一時ファイルの格納先なので、AS400からログアウトすれば削除されてしまいます。
永続化しておきたい場合、YAMAGUCHI1/OBJLSTなど、保管先を変更することをお勧めします。

DSPOBJD OBJ(YAMAGUCHI1/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE) OUTFILE(QTEMP/OBJLST)

スクリーンショット 2020-12-29 9.15.17.png

上記を実行したあと、WRKQRYなどでQTEMP/OBJLSTの中身を確認してみます。

runqry () qtemp/objlst

スクリーンショット 2020-12-29 9.18.20.png

  • ObjectTypeが*PGMとなっているものは、コンパイルされたプログラムオブジェクトです。
    • ObjectAttribute=RPGLEはRPGプログラム
    • CLLEはCLプログラム
  • ObjectTypeが*FILEとなっているものは、コンパイルされたファイルオブジェクトです。
    • ObjectAttribute=DSPFは画面プログラム
    • PFは物理ファイル
    • LFは論理ファイル
    • SAVFはセーブファイル

などといった感じのオブジェクト一覧情報が確認できます。
DSPOBJDで出力される各項目の説明については、後述します。

ObjectType=*FILE AND ObjectAttribute=PFの補足

PFに分類されるオブジェクトには、以下の2点が対象となります。

  • RDBMSでいうところのテーブル(データを表形式で格納する永続領域)
  • CLやRPGのソースコードをメンバーとして保持するファイル

つまり、テーブルだけではなく、ソースコードを保持するファイルについてもPFとして分類されるということです。
私のpub400.com環境では、以下の枠線内のものが該当します。

スクリーンショット 2020-12-29 9.42.34.png

pub400.comでは、完全日本語化ができていない状況もあり、日本語部分が文字化けしてしまうのですが、
テキスト記述(Text Description)にそのファイルの役割について、コメントが記載されていますので、
ソースを格納しているファイルなのかどうかは、テキスト記述で判別可能です。
(もちろん丁寧にコメントを記述してくれていればの話ですが。)

DSPOBJDの出力結果のテーブル定義

項目 概要
ODDCEN 表示世紀: 0=19XX, 1=20XX
ODDDAT 表示日付(ジョブ日付の形式)
ODDTIM 表示時刻(HHMMSS)
ODLBNM ライブラリー
ODOBNM オブジェクト
ODOBTP オブジェクト・タイプ
ODOBAT オブジェクトの属性
ODOBFR 記憶域解放: 0=解放しない,1=解放
ODOBSZ オブジェクト・サイズ: 9,999,999,999=ODSIZU*ODBPUN使用
ODOBTX テキスト記述
ODOBLK オブジェクトのロック: 0=ロックなし,1=ロック
ODOBDM 損傷オブジェクト : 0=損傷なし, 1=全部,2=一部
ODCCEN 作成世紀: 0=19XX, 1=20XX
ODCDAT 作成日付(MMDDYY)
ODCTIM 作成時刻(HHMMSS)
ODOBOW オブジェクト所有者
ODSCEN 保管世紀: 0=19XX, 1=20XX
ODSDAT 保管日付(MMDDYY)
ODSTIM 保管時刻(HHMMSS)
ODSCMD 保管コマンド
ODSSZE 保管されたサイズ
ODSSLT 開始スロット
ODSDEV 保管装置
ODSV01 保管ボリューム
ODSV02 保管ボリューム
ODSV03 保管ボリューム
ODSV04 保管ボリューム
ODSV05 保管ボリューム
ODSV06 保管ボリューム
ODSV07 保管ボリューム
ODSV08 保管ボリューム
ODSV09 保管ボリューム
ODSV10 保管ボリューム
ODSVMR 継続ボリューム: 0=YES, 1=NO, 2=並行保管形式
ODRCEN 復元世紀: 0=19XX, 1=20XX
ODRDAT 復元日付(MMDDYY)
ODRTIM 復元時刻(HHMMSS)
ODCPFL システム・レベル
ODSRCF ソース・ファイル名
ODSRCL ソース・ファイル・ライブラリー
ODSRCM ソース・ファイル・メンバー
ODSRCC ソース変更世紀: 0=19XX, 1=20XX
ODSRCD ソース変更日付(YYMMDD)
ODSRCT ソース変更時刻(HHMMSS)
ODCMNM コンパイラー名
ODCMVR コンパイラー・レベル
ODOBLV オブジェクト・レベル
ODUMOD ユーザー変更: 0=変更なし,1=変更
ODPPNM LICPGM名
ODPPVR LICPGMレベル
ODPCNR PTF番号
ODAPAR APAR ID
ODSSQN 順序番号: -5=ODSSQL フィールド参照
ODLCEN 変更世紀: 0=19XX, 1=20XX
ODLDAT 変更日付(MMDDYY)
ODLTIM 変更時刻(HHMMSS)
ODSFIL 保管ファイル
ODSFLB 保管ファイルのライブラリー
ODASP ASP番号: -1=ODASPLフィールド参照
ODLBL ファイル・ラベル
ODPTFN PTF ID
ODOBSY システム名
ODCRTU 作成ユーザー
ODCRTS 作成したシステム
ODUUPD 使用状況の更新: Y=はい,N=いいえ
ODUCEN 最終使用世紀: 0=19XX, 1=20XX
ODUDAT 最終使用日付(MMDDYY)
ODUCNT 使用日数カウント
ODTCEN リセット世紀: 0=19XX, 1=20XX
ODTDAT リセット時刻(MMDDYY)
ODODMN オブジェクト定義域: *S=システム,*U=ユーザー
ODCPVR システム・バージョン:VXRYMZまたはVVRRMM
ODCVRM コンパイラー・バージョン:VXRYMZまたはVVRRMM
ODPVRM LICPGMバージョン:VXRYMZまたはVVRRMM
ODCPRS 圧縮状況
ODOASP オーバーフローASP: 0=いいえ,1=はい
ODAAPI API変更可能: 0=いいえ,1=はい
ODAPIC APIによる変更: 0=変更なし,1=変更
ODUATR ユーザー定義の属性
ODACEN 保管活動世紀: 0=19XX, 1=20XX
ODADAT 保管活動日付(MMDDYY)
ODATIM 保管活動時刻(HHMMSS)
ODAUDT オブジェクト監査値
ODSIZU 装置中のオブジェクト・サイズ
ODBPUN 装置当たりのバイト数
ODPGP 1次グループ
ODSSQL 大順序番号
ODOSIG ディジタル署名: 0=いいえ,1=はい
ODJRST 現在ジャーナル処理中: 0=いいえ,1=はい
ODJRNM ジャーナル名
ODJRLB ジャーナル・ライブラリー
ODJRIM ジャーナル・イメージ: 0=*AFTER, 1=*BOTH
ODJREN 除外ジャーナル項目: 0=*NONE, 1=*OPNCLO
ODJRCN ジャーナル世紀: 0=19XX, 1=20XX
ODJRDT ジャーナル日付(MMDDYY)
ODJRTI ジャーナル時刻(HHMMSS)
ODSSZU 保管サイズ単位数
ODSBPU 保管サイズ乗数
ODASPL オブジェクトASP番号
ODLASN ライブラリーASP番号
ODOADN オブジェクトASP装置名
ODLADN ライブラリーASP装置名
ODSSIG トラステッド・ソースによる署名済み: 0=NO, 1=YES
ODMSIG 複数署名: 0=NO, 1=YES
ODASSZ 関連スペース・サイズ:0=スペースなし
ODALGN 最適スペース調整:0=いいえ1=はい2=スペースなし
ODOADG オブジェクトASPグループ名
ODLADG ライブラリーASPグループ名
ODSJRA 適用する開始ジャーナル・レシーバー名
ODSJRL 開始ジャーナル・レシーバー・ライブラリー名
ODSJRD 開始レシーバー・ライブラリーASP装置名
ODSJRG 開始レシーバー・ライブラリーASPグループ名
ODJRJF リモート・ジャーナル・フィルター: 0=NO, 1=YES
ODDTL オブジェクト詳細(DETAIL値)

全てのライブラリの全てのオブジェクトを見る場合

上記までだと、指定したライブラリ内のオブジェクトをみることはできますが、自分が把握していないライブラリに、実はこっそりとプログラムが配置されていて、そのプログラムが動いていた。なんてこともあるかもしれません。
なので、ライブラリなども指定せずに全ライブラリの全オブジェクトを一覧で確認したい場合は、以下のようにOBJ(*ALL/*ALL)と指定することで、実現可能です。

DSPOBJD OBJ(*ALL/*ALL) OBJTYPE(*ALL) OUTPUT(*OUTFILE) OUTFILE(QTEMP/ALLOBJLST)
2
2
6

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?