Tab navigation
上記リンクをクリックすると、ページ内の該当個所に移動します。
1. オープン・ソース・ソフトウェアへのIBM i 対応状況
IBM i におけるOSSサポートはIBM i V5R3(OS/400 V5R3)から始まりました。i5php.netコミュニティーの有志によりOS/400へのPHPエンジンのポーティングが行なわれ、その後、Zend社からZend Core for i5/OSが提供されるようになり、今ではZend Server for IBM i となり広く利用されています。今回は随時追加されていた情報をまとめることで、最新動向をお伝えします。
2. Zend Server for IBM i
2010年4月、米Zend Technologies社からZend Server for IBM i が発表されました。それまでのZend Core for IBM i にあたる無償版はZend Server Community Edition for IBM i となり、従来のZend Platform for IBM i にあたるフル機能の有償版はZend Server for IBM i となります。
Zend Server for IBM i は英語版であれば有償版/無償版問わず米Zend Technologies社のホームページダウンロードが可能です。英語版であっても日本語のアプリケーションやデータを使用することは出来るが、日本語によるサポートが必要なお客様はイグアス社から日本語版を購入することになります。
日本語版ではZend Server Community Edition for IBM i にあたるものがZend Server for IBM i SE日本語版となり、Standard Editionとしてコアとなる機能を提供し、Zend Server for IBM i にあたるものがZend Server for IBM i EE日本語版となり、Enterprise Editionとしてフル機能を提供しています。
英語版/日本語版共にフル機能により提供されるのは、主に運用監視機能の強化であり、ページキャッシング機能により大幅な高速化を実現しつつ、モニタリング機能により、PHPスクリプトの実行状況を監視し、問題を検出すると管理者への告知を行い、実行内容を記録するといったWebシステムの本格的な導入や大規模サイト構築に最適な環境を提供することが可能となります。
【参考】
ゼンド・ジャパン社Zend Server for IBM i 日本語版
イグアス社Zend Server for IBM i 日本語版
3. Zend Serverの提供方法とサポート体制
Zend Server for IBM i は前述のとおり、Zend.comからのダウンロードが可能であるが、実は、PowerSystems - IBM i をオーダーする際にプリロード指定をしていた場合、英語版Zend Server Community Edition for IBM i もプリロードされて出荷されていました。また今では、PowerSystems - IBM i をオーダーした際に必ず同梱されてくる、OSやライセンスプログラムなどが含まれるDVDメディアセットに、英語版Zend Server Community Edition for IBM i が含まれて出荷されています。
このようにZend Serverを使ったOSS利用のハードルは、実行環境だけを取ってもかなり低くなっているが、本格的に利用していくにつれ、OSS特有のサポート体制の不備が問題になってきました。Zend Serverでは無償版であっても1年間の米Zend Technologies社によるサポートがありますが英語によるため、通常、日本語によるサポートを希望されるお客様にはイグアス社によるサポートを選択することになります。
しかし、プリロードされたりDVDメディアセットに含まれる英語版Zend Server Community Edition for IBM i のサポート体制が従来のままではさらなる利用促進の阻害要因となるため、IBM STSSを拡張する形で、日本語によるユーザーからの問題報告受付と問題切り分け、Zend Server側への引継・連携を提供するZend Server技術支援サービスを2010年11月から開始しています。
こちらの技術支援サービスのご利用については、別途付随契約が必要となるため、詳細は担当営業にご確認ください。
4. MySQLの提供とサポート体制
MySQLホームページ(IBM外のWebサイトへ)において、IBM i 版ディストリビューションのダウンロード終了が発表されましたが、今後IBM からはIBM i DVDメディアセットに同梱される Zend Serverにパッケージングされ出荷されることになります。この製品に関しては、イグアス社を経由した有償サポートが継続されていますが、オープン・ソース・ソフトウェアとして典型的に見られるような、英語によるコミュニティーを通じてのサポートを得る事も可能です。
【参考】
MySQLストレージエンジン(IBMDB2I)の配付についても、MySQL同様、IBM i 同梱の Zend Server にパッケージングされ出荷されています。テクニカル・サポートはIBM i ソフトウェアメンテナンスを通じて提供されます。不具合の修正はYoung i Professionalsホームページで公開されるソースコード、および、将来リリースされるZend Server にバンドルされるバイナリー・コードとして提供されます。
【参考】
5. MySQL DB2 Storage Engine概要
前項で挙げたMySQL DB2 Storage Engine(IBMDB2I)について改めて解説すると、2009年4月からMySQLのストレージエンジンとしてDB2 for iの物理ファイル(テーブル)がサポートされるようになりました。これにより、MySQLを使うアプリケーションが追加したデータが実際にはDB2 for i の物理ファイルに格納されたり、MySQLのテーブルのデータをDB2 for i のインターフェースからアクセス可能になります。
6. MySQL DB2 Storage Engine導入
ストレージエンジンIBMDB2I はi5/OS V5R4以降でサポートされます。このストレージエンジンをインストールするには前提としてあるレベル以降の累積PTF、DB2グループPTFといくつかの個別PTFを適用しなければなりません。最新のPTF情報はInformation APAR II14442 INFOAPAR FOR MYSQL ON IBM I を確認してください。
【参考】
Information APAR II14442 INFOAPAR FOR MYSQL ON IBM I
- おなじみのcall qp2termでPASEターミナルセッションを立ち上げ、『cd /usr/local/mysql』で現行ディレクトリーをMySQLのモジュールが含まれるディレクトリーに変更し、『bin/mysql -u root』でMySQLクライアントを実行します。
- 『install plugin ibmdb2i soname "ha_ibmdb2i.so";』を実行し、ストレージエンジンIBMDB2I のインストールを行ないます。
- 『show plugin;』を実行し、IBMDB2I がインストールされたことを確認します。
7. ストレージエンジンIBMDB2I の利用と考慮事項
ストレージエンジンIBMDB2I のプラグインが導入完了した時点でIBMDB2I をすぐ使用することが可能になり、create table文でオプションのengine=ibmdb2i を付けるだけでストレージエンジンとしてIBMDB2I を使ったテーブルを作成することが出来ます。
今回は、testデータベースにtable01テーブルを作成してみます。先ほどのMySQLクライアント上で、『connect test;』を実行しtestデータベースにアクセスし、『create table TABLE001 (COL1 char(20), COL2 int) engine=ibmdb2i;』を実行するとTABLE001テーブルを作成することが出来ました。
phpMyAdminで確認してみると、TypeがIBMDB2I となり、ストレージエンジンIBMDB2I を使用しているのが分かります。
5250エミュレーターで確認してみると、後述する考慮事項に該当する現象を確認することが出来ます。ストレージエンジンIBMDB2I 経由でテーブルを作成すると、connect したデータベースがライブラリーとして自動作成され、なおかつ、ライブラリー名や物理ファイル名は小文字となりダブルクォーテーションで囲まれて作成されます。
また、格納されるDBCSデータはUTF-16となるため、CCSID1399の5250エミュレーター環境にて格納されたデータをQueryで表示すると、NEC選定文字を確認することが出来ます。
主な考慮事項としては以下の点となります。
MySQLインターフェースで作成されたオブジェクトをIBM i で変更しない- 変更するとMySQLインターフェースから認識できなくなる
- データの更新は問題なし
- 物理ファイル名/テーブル名の変更
- RNMOBJコマンド
- RENAMEステートメント
- 物理ファイル/テーブル属性の変更
- CHGPFコマンド(パラメーターによっては影響を及ぼさないものもある)
- ALTER TABLEステートメント
- 物理ファイル/テーブルの削除
- IFS上の定義だけが残り実体としてのオブジェクトがなくなる
- DBCSの文字コードを指定して作成した列はIBM i の物理ファイル上ではUTF-16の文字コードが使用される(CCSID 1200)
- UTF-16はILE RPGでは使用可能だがRPG/400(OPM)では不可
- 例: create table db1.sales (orderno int) engine=ibmdb2i;
- このステートメントでは、ライブラリー ”db1” の中にテーブル ”sales” が作成される
- IBM i のインターフェースでは以下のように指定する必要がある
- DSPFFD FILE(“db1”/”sales”)
- オブジェクト名の長さの制限に” “(ダブルクォーテーション)を加味する必要がある
- 例: 構成ファイルmy.cnf での指定を下記のようにする
- datadir = /QOpenSys/usr/local/mysql/data
- /QOpenSys配下のディレクトリー以外を使用すると、MySQLのステートメントで大文字で指定したテーブル名が、IBM i のオブジェクトとしてはすべて小文字で作成されてしまうといった現象が発生
8. OSS on IBM i 導入手順書
既存のお客様には現在のシステムにZend Server CE for IBM i をインストールする手順書のご紹介です。手順書のZend Serverのバージョンは5.0.1を基にしており、Zendのホームページからダウンロードが出来る最新のバージョンは5.6.0になっておりますが、一部画面が異なる程度でほとんど変わらずに導入作業を行なう事が可能です。
【参考】
Zend Server Community Edition(IBM iの最新PHPシステム環境)の導入手順のご案内
既にプリインストールされているシステムはこちらのSugarCRMとXOOPSの導入手順書でOSSの世界に触れてみてください。SugarCRM はオープンソースのCRM(Customer Relationship Management)パッケージとして実績が十分あり、この手順書は無償で使用できるCommunity Edition版となります。XOOPS はオープンソースのCMS(Content Management System)パッケージとしてこちらも日本において実績の多く、日本での開発が中心となっているため、日本のお客様には使いやすいCMSとなっております。
【参考】
「SugarCRM Community Edition(CE) 5.2 日本語版 IBM i導入手順書」のご案内
9. IBM i Open Application Serverで拡大するOSS活用
2010年10月にIBM i Open Application Server を発表しました。このサーバーは、OSSで業務系アプリケーションを構築したいが、HW・OS・ソリューションのトータルサポートを欲しいというお客様に最適なサーバーです。IBM Power Systems、またIBM i の持つダウンタイムゼロクラスの可用性、運用の容易性、複数ジョブによるI/O多重負荷に強い統合サーバーの登場です。
IBM i Open Application ServerはIBM Power Systems - IBM i のアーキテクチャーが持つメリットを最大限に享受しつつ、同等クラスのIAサーバーと比べ価格的に競争力を持つ製品となります。さらに、前述のIBM STSSのZend Server技術支援サービスやイグアス社によるZend Server CE年間日本語サポートといったサポート・サービスについても特別割引料金が設定されているため、通常のサーバーよりも価格的なメリットがあり、本格的にWebアプリケーションを検討するユーザーにとって最適な選択肢となります。
IBM i Open Application Server はDB2を業務用途で使用することが出来ないため、既存のRPGやCOBOLで書かれた基幹アプリケーションを稼働することは出来ませんが、MySQLが前提となるOSSやDomino、HATSなどのアプリケーション・サーバーとして使用することが出来ます。
【参考】