MENU

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

text:佐々木 幹雄 日本アイ・ビー・エム

IBM i サービス登場の背景

IBM i サービスは、IBM i OSの運用管理やその他のオペレーションを実行するSQLビュー、プロシージャー、関数で提供される。

これらのシステム提供オブジェクトを利用することで、従来必要であったCLプログラムやAPIプログラミングを代替できる。

IBM i サービスは、基本的にSQLインターフェースからの利用を前提に提供されている。つまり大半のIBM i サービスは、これまでもユーザープログラミングすれば実装可能であった機能を提供する、と言える。

IBM i サービスを利用するメリットは何か。それは以下のようにまとめられる。

・CLプログラミング、APIプログラミングを省略でき、生産性が向上する。
・CLコマンドやAPIでは提供されない機能をサービスとしてすぐに利用できる(SQLインターフェース以外にREST API、SOAP経由でも利用可能)。
・システム標準提供なので、開発者ごとの属人性を排除し、システムの可視化が向上する。

IBM i サービスは7.2以降で急速に拡充してきたが、その背景にはIBM i(AS/400)の技術者の世代交代の流れがあると考えられる。

SQLという最も普及した言語、インターフェースを採用することで、IBM iネイティブではない技術者も含めて、IBM i の開発や保守が容易になる効果が見込まれる。運用自動化の観点でも、さまざまな運用監視ツールに組み込めるし、ヘテロなIT環境でも追加の負荷なく、自動化・効率化を実現できる。

実はIBMロチェスター研究所のIBM i開発者も、相当数がオープン系出身の若手技術者である。彼らが最も慣れ親しんだ言語の1つがSQLであることは想像に難くない。そういった背景もあるのだろう。

IBM i サービスの概要 

IBM i サービスの実態はQSYS2ライブラリー、SYSTOOLSライブラリーに存在するビュー、プロシージャー、関数である。

図表1  IBM i サービスの概要

IBM i サービスの一覧は、IBMナレッジセンターに記載されている。

IBMナレッジセンター:IBM i サービス 7.4

以下に、IBM i サービスをカテゴリで分類した。

◎アプリケーション・サービス
データエリア域の検索、ジョブ実行時の環境変数の検索、CLコマンド実行、PASEシェルのパス設定、特定スレッド・ジョブの呼出スタック情報取得など、アプリケーション作成に関連したプロシージャー、ビューを提供

◎通信サービス
該当LPARのOS情報取得、NETSTAT、TCP/IP構成情報、IPインターフェース情報取得、ポート/IP情報取得、TCIP/IPルーティング情報、NTPサーバー情報取得・追加・削除など、ネットワーク関連のプロシージャー、ビューを提供

◎Javaサービス
WRKJVMJOBコマンド類似の情報取得、GC情報やダンプの生成など、JVM関連のプロシージャーを提供

◎ジャーナル・サービス
RTVJRNEコマンドなどを介さず、ジャーナル項目を表示・取得する関数、ジャーナル属性を取得するビューを提供

◎ライブラリアン・サービス
現行ジョブのライブラリー・リスト、指定したライブラリー内のオブジェクト情報の詳細(オブジェクト名・タイプ、サイズ、作成日時、所有者、ソースファイル)など、オブジェクト関連情報に向けたビューと関数を提供

◎メッセージ処理サービス
QHST、ジョブログ内のメッセージ、メッセージキュー*MSGQ、現行ジョブの応答リストなど、メッセージに関連したビューを提供

◎プロダクト・サービス
導入済みライセンスプログラム(ユーザーやベンダーが作成したライセンスプログラム含む)の有効期限切れのチェックと警告メッセージ送出、ライセンスプログラムの一覧取得などのサービスを提供

◎PTFサービス
自社サーバー上の適用済みグループPTFレベル、グループPTFの詳細情報、個別PTF情報、インターネット上のIBMサイトの最新PTFレベルなどのビューを提供

◎セキュリティー・サービス
ユーザーID情報、グループプロフィール情報、オブジェクト権限検査、オブジェクトとユーザー権限の情報、権限リスト、ファンクションIDと詳細、DBモニター・プランキャッシュで列変数値を非表示にする属性変更などのビュー、プロシージャーを提供

◎スプール・サービス
OUTQの情報、OUTQ内のスプールファイル情報を表示するビュー、関数を提供

◎ストレージ・サービス
ASP関連情報、ASPのオン・オフ操作ステータス、テープライブラリーなどメディア操作、物理ディスク情報、テンポラリストレージ情報、所有者ユーザーIDごとのサイズといったビューを提供

◎システム・ヘルス・サービス
QSYS2.SYSLIMTBLテーブルに格納されるASP使用率などディスク情報、テーブルサイズなどが閾値のXX%を超えた時にQSYSOPRメッセージを出力するといったビュー、グローバル変数を提供

◎実行管理サービス
WRKACTJOB・DSPJOB取得情報、ジョブキュー情報、WRKSYSSTS情報、オブジェクトロック・レコードロック情報、スケジュールジョブ情報、システム値情報等のビューと関数を提供

現状、あらゆるCLコマンドを代替可能なわけではないが、運用管理面で利用度の高いCLコマンドやAPIを中心に機能追加が進んでいる。

また後述するように、CLコマンドの組み合わせやAPIプログラミングが必要だった複雑な処理を1つに実装しているIBM i サービスもある。

QSYS2ライブラリー

IBM i サービスの簡単な例として、ジャーナル・サービスの QSYS2.DISPLAY_JOURNALテーブル関数を紹介する。

この機能はSQLインターフェース(またはREST/SOAP)からジャーナル検索する機能である。

従来のCLコマンドではRTVJRNEコマンドに相当するが、RTVJRNEコマンドは1レコードごとにジャーナルを取り出すもので、多くの場合はCLPなどユーザープログラミングが必要であった。

それに対して、ジャーナル・サービスでは以下のとおり、SQLで必要な条件を指定するだけで容易にジャーナルをDb2 のレコードのように検索できる。

SELECT * FROM TABLE (QSYS2.DISPLAY_JOURNAL( ‘DEMOLIB’, ‘JRN01’)) AS JT;DEMOLIB/JRN01から取得した結果が、以下である。

図表2   取得結果

必要に応じてPF名やファイル操作タイプ、ユーザープロフィール、ジョブ名など条件を付加して検索できる。

SYSTOOLSライブラリー 

前述したように、IBM i サービスは基本的な単機能をSQLで呼び出す。ユーザーの利用ケースに応じて組み立てて利用するためのもの、と言える。

それに対してSYSTOOLSライブラリーには、多くのユーザーでそのまま利用できそうなIBM i サービスのサンプルや、より複雑な機能を実行するサンプルが提供されている。実業務ですぐに応用したいユーザーには、SYSTOOLライブラリーで適したサンプルが見つかるかもしれない。

SYSTOOLライブラリーはPTF適用時やバージョンアップ時に随時、機能拡張などメンテナンスが行われている。

SYSTOOLライブラリーで提供される機能のいくつかを、以下に紹介する。

ファームウェア情報の取得:FIRMWARE_CURRENCY

実行しているサーバーのファームウェア情報を取得し、表示する。DSPHDWRSCコマンド、SPFMWSTSコマンドに類似する。

図表3  FIRMWARE_CURRENCY

適用済みグループPTF情報:GROUP_PTF_CURRENCY

実行しているIBM i に適用済みのグループPTF情報を取得する。DSPPTFコマンドでも取得できるが、1つのSQLでさまざまな条件により変更して取得できるなど、柔軟性は高い。

図表4  GROUP_PTF_CURRENCY

このサービスでは、以下のように非常に詳細なPTF情報を取得できる。

図表5 取得したPTF情報①
図表6 取得したPTF情報②



古いスプールファイルの検索・削除:DELETE_OLD_SPOOLED_FILES

DLETE_OLDER_THAN パラメーターに日数で検索、PREVIEWパラメーターをYES/NOできる(NOで該当スプールを削除)。CLコマンドの場合はプログラミングが必要になる。

図表7  DELETE_OLD_SPOOLED_FILES

ACSからアクセスできるIBM i サービス・サンプル

IBM i Access Client Solution (以下、ACS)から、IBM i サービスの多彩なサンプルを利用可能である。

ACSでIBM i サービスのサンプルSQLを利用する手順は以下のとおりである。

IBM i サービスでSQLスクリプトの実行画面を開く → 編集メニュー → 例 → 例から挿入 → 展開する画面でIBM i Services を選択

図表8  ACSからアクセスできるIBM i サービス・サンプル

今回は主題ではないので触れないが、以下の画面のようにACSはIBM i サービス以外にも、Db2 for iサービスや一般的なDb2 for i SQLのサンプルが数多く提供されている。

図表9 多彩なサンプルを提供

IBM i サービスのサンプルコードを閲覧すると、以下のように非常にたくさん登録されているのがわかる。

図表10 IBM iサービスのサンプルコード

サンプル名称から大まかな利用ケースが想像できるだろう。該当しそうなサンプルを選択すると、SQLのコードが表示される。基本的には、そのままコピー&ペーストして利用可能である。


特集 IBM i サービスを学ぶ

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

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

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

著者
佐々木 幹雄氏

日本アイ・ビー・エム株式会社
IBM Powerテクニカルセールス
シニアITスペシャリスト

AS/400利用のお客様担当SEから出発し、さまざまなテクニカル職種を担当。現在はPower Systemsはじめインフラ提案・アーキテクチャ設計を主に担当している。

[i Magazine・IS magazine]