IBM i V7では、新しいリリースの度に IBM i ServiceというSQLでシステム管理に必要な値を取得できる機能が拡張されています。
PHPQUERYのSQL定義での作成機能を利用すると、PHPQUERYを利用してシステムの値を取得することが可能です。
また、メール配信のバースト機能を使用することで、特定の条件を満たす値が抽出された際にメール配信を行うことも可能です。
IBM i Serviceについては、下記サイトもご参照ください。
https://www.i-cafe.info/column/serials/dekiruibmi_no5
以下にPHPQUERYで利用した際のサンプルを掲載します。
IBM i (AS400)のOSバージョンにより、コマンドの使用可否・構文差異があります。
詳細はIBM i Knowledge Centerなどをご確認ください。
(以下のスクリーンショットの環境はIBM i V7.3です)
PHPQUERYのクエリー作成で、「SQL実行」を選択、作成、保存をします。
- SQL実行を選択
- 定義のSQL文入力
- 出力フィールドの選択
SELECT
※IBM iのバージョンによっては、末尾のAS Xを削除して実行できることがあります。
OBJNAME,OBJSIZE,OBJOWNER,OBJDEFINER,OBJCREATED,OBJTEXT,CHANGE_TIMESTAMP,
CREATED_SYSTEM,CREATED_SYSTEM_VERSION,SAVE_TIMESTAMP,RESTORE_TIMESTAMP,
SAVE_COMMAND,SAVE_DEVICE,SAVE_VOLUME,SAVE_LABEL,LAST_SAVE_SIZE
FROM TABLE(QSYS2.OBJECT_STATISTICS('*ALL', '*LIB')) AS X
プレビュー
その他の例
- メッセージの確認
SELECT
MSG_TIME AS TIME,MSGID AS MSGID,SEVERITY,MSG_TYPE AS TYPE,
CAST(MSG_TEXT AS CHAR(100) CCSID 1399) AS TEXT,
FROM_USER,FROM_JOB,FROM_PGM
FROM QSYS2.MESSAGE_QUEUE_INFO
- Netstat(リモート接続ありを抽出)
SELECT
REMOTE_ADDRESS || '(LocalPort:' || LOCAL_PORT || ')' AS CONECTED_INFO,
LOCAL_PORT_NAME,NETWORK_CONNECTION_TYPE,IDLE_TIME,TCP_STATE
FROM QSYS2.NETSTAT_INFO
WHERE REMOTE_ADDRESS not in '::'
AND REMOTE_ADDRESS not in '0'
AND REMOTE_ADDRESS not in '0.0.0.0'
AND REMOTE_ADDRESS not in '127.0.0.1'
<出力フィールドの例> - DsplayUser(使用が5日以下、Q*を除く)
SELECT
AUTHORIZATION_NAME AS AUTHORIZATION_NAME,TEXT_DESCRIPTION AS TEXT_DESCRIPTION,
DAYS_USED_COUNT AS DAYS_USED_COUNT,PREVIOUS_SIGNON AS PREVIOUS_SIGNON,
SIGN_ON_ATTEMPTS_NOT_VALID AS SIGN_ON_ATTEMPTS_NOT_VALID,STATUS AS STATUS,
GROUP_PROFILE_NAME AS GROUP_PROFILE_NAME,USER_CREATOR AS USER_CREATOR
FROM QSYS2.USER_INFO
WHERE DAYS_USED_COUNT <=>
AND AUTHORIZATION_NAME NOT LIKE 'Q%'</=>
<出力フィールドの例>
- ActiveJob(MSGWを抽出)
SELECT
SUBSTR(SUBSTR(JOB_NAME,8),POSSTR(SUBSTR(JOB_NAME,8),'/')+1) AS JOB_NAME,
SUBSTR(JOB_NAME,8,POSSTR(SUBSTR(JOB_NAME,8),'/')-1) AS JOB_USER,
JOB_TYPE AS JOB_TYPE,ELAPSED_CPU_PERCENTAGE AS ELAPSED_CPU_PERCENTAGE,
SUBSTR(JOB_NAME,1,6) AS JOB_NUMBER,FUNCTION AS FUNCTION,JOB_STATUS AS JOB_STATUS
FROM TABLE(QSYS2.ACTIVE_JOB_INFO())
WHERE JOB_STATUS = 'MSGW'
コメント
0件のコメント
サインインしてコメントを残してください。