MENU

IBM iサービスのソリューション活用例 ~PHPQUERYからIBM iサービスを呼び出す |IBM i サービスを学ぶ <ソリューション編>


Text=矢口 藤夫 オムニサイエンス

IBM iサービスのデータを活用 

IBM iには、運用管理に必要な情報やシステムリソースにSQLインターフェースからアクセスできる「IBM iサービス」という標準機能がある。

IBM iサービスでは、IT業界の標準言語ともいえるSQLを通じて、IBM iネイティブではない技術者でも、IBM iの運用管理に関する多くの有用な情報に容易にアクセスし、取得できる。SQLを介して、システムの状況を把握できる画期的な機能である。

その一方、オムニサイエンスは「PHPQUERY」という製品を提供している。PHPQUERYは簡単な操作により、IBM iに蓄積されているデータを集計したり、グラフ表示できるブラウザベースのデータ活用ツールである。

PHPQUERYは多くのお客様に導入いただいており、高い支持を得ている。GUI操作に加えて、SQLで参照データを定義できるため、IBM iサービスの機能をPHPQUERYから呼び出すことができる。

PHPQUERYでIBM iサービスを実行するメリットは、プログラミング不要でIBM iの情報を収集し、表示できる点にある。

図表1  PHPQUERYでIBM iサービスを実行する


PHPQUERYからIBM iサービスを呼び出す
具体的な使用例 

たとえばPHPQUERYからIBM iサービスを呼び出すことで、図表2のようにIBM iの状態を直感的な、わかりやすいグラフで表示できる。

図表2  PHPQUERYからIBM iサービスを呼び出して表示

この例では3つのグラフを表示しており、すべてPHPQUERYからIBM iサービスを呼び出している。左上のグラフは各ライブラリの容量を取得し、容量の大きいTOP10を表示している。右上のグラフはユーザープロファイルごとに使用容量を表示しており、下方の緑色のグラフは、ユーザープロファイルごとのCPU使用率を表示している。


IBM iサービスのデータを収集するSQL文の定義 

図表2の中から、「ユーザーごとのCPU使用率」を表示しているグラフを取り上げて、PHPQUERYで、IBM iサービスを利用する方法を具体的に紹介する。

最初に図表3のように、「定義のSQL文入力」でSQL文を定義したクエリーを作成する。

図表3 定義のSQL文入力

「SQL文」の箇所に記述している以下のSQL文が、IBM iサービスのACTIVE_JOB_INFO テーブル関数である。

IBM i サービスについては後述するが、記述したSQL文は、IBM i Documentationに書かれた例を参考に作成した。この例のように、取得したい情報に応じて抽出条件や内容をカスタマイズできるのもSQLのメリットの1つである。

クエリーの実行

作成したクエリーを実行すると、図表4のようにWRKACTJOBコマンドと同等の情報を取得できる。

図表4  作成したクエリーを実行

グラフの定義

次に図表5のように、作成したクエリーに対してグラフの定義を作成する。横軸にユーザープロファイル(カラム名:JOB_USER)、縦軸はCPU使用率(カラム名:ELAPS00001)をユーザープロファイルごとにサマリーした結果がグラフ表示されるように定義している。

図表5 グラフの定義

グラフの表示 

グラフの定義を終了して、グラフ表示すると、図表6のように表示される。

図表6 グラフの表示

ダッシュボードへの登録 

このグラフの定義をダッシュボードに登録すれば、冒頭の「具体的な使用例」にあるイメージのように、運用管理などで確認したい情報を1画面に集約し、一覧して表示することも簡単である。

IBM iサービス 

この例で使っているIBM iサービスのACTIVE_JOB_INFO テーブル関数は、リアルタイムな活動ジョブの情報を取得する。

この関数で取得できる情報はほかにも多く含まれるが、今回はその中から、次の列名の情報を収集して活用している。

JOB_NAME
ジョブ番号、ユーザー、ジョブ名。次の形式で取得される(ジョブ番号/ユーザー/ジョブ名)

JOB_TYPE
アクティブ・ジョブのタイプ

FUNCTION
初期スレッドによって開始された最後の高水準機能

JOB_STATUS
ジョブの初期スレッドの状況

ELAPSED_CPU_PERCENTAGE
測定時間間隔中に、このジョブに起因した処理装置時間のパーセント(CPU使用率)

ACTIVE_JOB_INFO テーブル関数の詳細は、以下のIBM Documentationを参照してほしい。

ACTIVE_JOB_INFO テーブル関数
https://www.ibm.com/docs/ja/i/7.4?topic=services-active-job-info-table-function

ほかにも数多くのSQL文の例が、IBM i DocumentationやIBM i Access Client Solutions(ACS)から入手できる。

IBM i Documentation
https://www.ibm.com/docs/ja/i/7.4?topic=optimization-i-services

実際にPHPQUERYを使うと、プログラミングするよりはるかに簡単に、GUIの操作でIBM iの情報を可視化できる。

PHPQUERYとIBM iサービスは、ほかにも数多くの便利な機能とサービスがあり、アイデアひとつで画期的な活用方法が生まれ、効率化を図れる。ぜひいろいろなアイデアで効率化を図ってほしい。

 


特集 IBM i サービスを学ぶ

<概要編>
IBM i サービスの基本とメリット ~CLやAPIのプログラミング不要で、必要な機能がすぐに使える

<実践編>
IBM i サービスの利用例 ~GROUP_PTF_CURRENCY ビューを利用してPTF運用を自動化する 

<ソリューション編>
IBM iサービスのソリューション活用例 ~PHPQUERYからIBM iサービスを呼び出す

著者
矢口 藤夫氏

株式会社オムニサイエンス
IBM i クラウドサービス事業部
チーフエンジニア

1989年に入社。1年後に、AS400(IBM i)に出会う。その後、IBM i専門で基幹業務のソフトウェア開発を10年ほど経験し、以降は、Power Systems H/W メンテナンス業務を中心に従事する。また、Power Virtual ServerやIBM i新機能の活用などに力を注いでいる。

[i Magazine・IS magazine]