AS/400展望台

はじめてのiSeries Access for Linux



マイケル・オティ著

最近、ビジネスのあらゆるレベルでLinuxシステムの数が増大していることを受け、IBMは人気製品iSeries AccessのLinux版を開発しました。iSeries Access for Linux (5722-XL1)の最初のリリースは、5250エミュレーションおよびODBCドライバという2つの主要コンポーネントを提供するのみです。こうした機能の貧弱さは機能満載のSeries Access for Windows製品とは雲泥の差があるものの、これらのコンポーネントはデスクトップとiSeriesの統合を可能にするために最も重要な要素のうちの2つなのです。
そうは言っても、IBMがLinux版のデータ転送プログラムも提供していれば、それにこしたことはなかったでしょう。FTPを使ってファイルを転送することはできますが、データ転送コンポーネントが持つファイルの結合、レコードの選択、データの自動変換などといった機能はありません。iSeries Access for Linuxの5250エミュレーション機能を使用することを考えているのであれば、iSeries Accessクライアント・ライセンスを取得してiSeriesに接続しなければなりません。ODBCドライバの使用だけで十分なのであれば、追加のクライアント・ライセンスは必要ありません。本稿では、iSeries Access for Linuxを紹介し、そのインストール、構成、使用方法について説明します。

必要条件
iSeries Access for Linuxを使用するにはiSeries Access Familyプログラム製品(5722-XW1)とTCP/IP Connectivity Utilities for AS/400 (5722-TC1)をiSeriesにインストールする必要があります。iSeriesはV5R1以降を使用してください。STRTCP (Start TCP/IP)コマンドを実行してTCP/IPを起動し、STRHOSTSVR (Start Host Server)コマンドを使用してOS/400ホスト・サーバーを起動します。IBMは、公式にはV5R1以降のiSeriesへの接続性しかサポートしていませんが、私がiSeries Access for LinuxをV4R5やV3R2へ接続してみましたところ問題はありませんでした。

iSeries Access for Linuxを使用するためにLinux側に必要な条件としては、GLibc 2.2、RPM 3.0、OpenMotif 2.0、バージョン2.011以降のunixODBC Driver Managerがインストールされていなければなりません。上記の最初の3つのコンポーネントはほとんどのLinuxディストリビューションに同梱されています。unixODBCドライバも複数のLinuxディストリビューションの一部となっています。(unixODBC Driver Managerはwww.unixodbc.orgにあります。)

IBMは、公式にはiSeries Access for Linux 1.1を2003年9月22日にリリースし、製品のコードをwww-1.ibm.com/servers/eserver/iseries/access/linuxからダウンロード可能にしました。iSeries Access for Linuxのこの最初のバージョンはIntel x86プラットフォームだけをサポートしていましたが、IBMは、将来のバージョンではiSeries LPAR上のPowerPCプラットフォームやLinuxもサポートすることになると表明していました。

インストールと構成
今回は、CPU 1.8 GHz、メモリ512 MB、80 GBのハードディスクを備えたマシン上でiSeries Access for Linuxをテストしました。このシステムではRed Hat Professional Workstation Version 9.0を稼動していました。LinuxシステムにiSeries Access for Linuxをインストールする前に、まずunixODBC Driver Managerをダウンロードしてインストールしなければなりませんでした。しかしこれがいくつかの要因のためにかなり難しい作業となりました。(unixODBC Driver Managerのインストールに関連する問題については下記「unixODBC Driver Managerの構築とインストール」をご覧ください。)

unixODBC Driver Managerのインストールが完了して、iSeries Access for Linuxをインストールする準備が整いました。iSeries Access for LinuxはRPMインストーラーを使用しているので、その設定はunixODBC Driver Managerの設定より楽でした。Linuxの端末ウィンドウで以下のコマンドを入力しました。

rpm -ivh iSeriesAccess-5.2.0-1.1.i386.rpm

このコマンドでインストール・プロセスが実行され、インストレーションが終了すると図1のような画面が表示されます。バイナリはすべてopt/ibm/iSeriesAccess/binディレクトリにインストールされます。しかしRed HatのGnomeデスクトップにはメニュー項目は追加されませんので、デスクトップにメニュー項目を手操作で追加するか、またはコマンドを使用してプログラムを実行しなければなりませんでした。製品に関するドキュメントはopt/ibm/iSeriesAccess/docディレクトリにインストールされています。

5250エミュレーション
5250エミュレーション・プログラムを実行するにはibm5250コマンドを入力します。5250エミュレーション・プログラムが起動すると、接続先のiSeriesシステムの名前を入力するよう指示してきます。ホストのDNS名かそのIPアドレスを入力します。さらに、iSeriesのサイン・オン情報も入力しなければなりません。図2に初期接続画面を示します。

接続情報を入力してOKをクリックすると、5250のメイン端末エミュレーション・セッションが起動し、図3に示す画面が表示されます。iSeries Access for Linuxの5250エミュレーションは基本的にはiSeries Access for Windowsと同じフル機能を備えています。フォントはスケーラブルで、エミュレーション・ウィンドウのサイズを変更するとフォントも動的に変化します。エミュレーション・セッションはフォントの変更、ホットスポット、カット&ペースト機能、多言語をサポートしています。また、キーボード・マクロの登録と再生、キーボード・レイアウトや画面色のカスタマイズもサポートしています。

iSeries Access for Linuxの5250エミュレーションとiSeries Access for Windowsの5250エミュレーションの違いで重要なのは、このバージョンのリリースではiSeries Access for Linuxは5250セッションにカスタム・デバイス名を割り当てられないという点です。本製品はデバイス・セッションに名前をつける類似の名前の機能(PC5250がショート・ネームを使用するのと同様の方法)をサポートしていますが、iSeriesが割り当てたデバイス名には影響しません。現在のバージョンのibm5250エミュレーターはセキュア・ソケット・レイヤー(SSL: Secure Sockets Layer)をサポートしていません。

Linux版ODBCドライバ
iSeries Access for Windowsの場合と同様に、ODBCドライバを使用する前にデータ・ソースを作成しなければなりません。ODBCデータ・ソースは、基本的にはデータベースに接続するために必要な情報を含んだデータ・ファイルです。データ・ソースは、ユーザーになじみやすい名前を作成して別のODBC互換データベースと関連付けることによってバックエンドのデータベースをアプリケーションから抽出しています。複数のデータ・ソースが同時に存在することも可能です。

私はLinux端末ウィンドウを開き、ODBCConfigコマンドを入力して新しいデータ・ソースを作成しました。図4にデータ・ソース・プロパティ構成画面を示します。iSeries Access for Windowsと同様に、unixODBCドライバ・マネージャは、ユーザー・データ・ソース、システム・データ・ソース、ファイル・データ・ソースの3つのタイプのデータ・ソースをサポートしています。ユーザー・データ・ソースは現在ログオンしているユーザーだけが利用できます。システム・データ・ソースはシステム上のすべてのユーザーが利用できます。ファイル・データ・ソースには、システム間で移動できるファイルにODBCの構成が含まれています。

私は新しいデータ・ソースを構成するために[システム・データ・ソース]のタブを選択して[追加]をクリックしました。すると図5に示すような選択データ・ソース・ドライバ・ウィンドウが表示されました。ここでiSeries Access ODBC Driver iSeries Access for Linuxオプションを選択し、OKをクリックして図6のドライバ構成ウィンドウを表示させました。

iSeries Access ODBCドライバを設定するために、まずデータ・ソース名を入力しますがこれは単なる説明用です。この例ではS1030438という名前を使用しています。次に[システム]フィールドにiSeriesのDNSホスト名を入力します。このフィールドもiSeriesのTCP/IPアドレスで入力することができます。次に、デフォルトのライブラリを入力するよう指示されるので、適切でないすべての問い合わせに対してiSeries上で使用するライブラリのリストを指定します。図6に示す通り、リスト中の各ライブラリ名は空白文字で区切ります。ドライバの構成に必要な情報はこれだけです。ウィンドウの左上にあるチェック・マークをクリックすると構成に関する詳細が新しいデータ・ソースとして保存されます。

ODBCドライバをテストするために、iSQLユーティリティを実行しました。iSQLユーティリティはターゲットとするデータ・ソースに対してSQLコマンドを対話式に実行できるものです。以下のコマンドを使用してiSQLユーティリティを起動しました。

iSQL S1030438 mikeo mypwd

次に、>SQLというプロンプトに対してselect * from QIWS .QCUSTCDTと入力しました。するとIBMのLinux ODBCドライバがiSeriesに接続し、問い合わせの結果を図7に示すように表示します。

IBM ODBC Driver for Linuxをシステムにインストールしたら、このドライバを使用して任意のODBC互換アプリケーション(たとえばOpenOfficeなど)をiSeriesデータベースに接続することができます。

補助ユーティリティ
iSeries Access for Linuxにはコアとなる5250エミュレーションおよびODBCドライバの他にも有用なユーティリティがあります。このユーティリティはいずれもコマンドラインから起動し、opt/ibm/iSeriesAccess/binディレクトリにあります。

CWBPING -
補助ユーティリティの中でおそらく一番重要なのが、OS/400ホスト・サーバーの可用性をテストするCWBPINGです。S1030438という名前のiSeriesシステムに対して/Vスイッチを使用して詳細情報を出力させるときのCWBPINGの例を下に示します。 CWBPing S1030438 /v

RMTCMD -
RMTCMDユーティリティはiSeriesのCLコマンドをLinuxコマンドラインから実行させるときに使用します。このコマンドはリモートで使用するコマンドですので、バッチ・コマンドを実行するときのみに使用でき、対話型のプログラムを起動するためには使用できません。
RMTCMD MyLib/MyCLP /system:S1030438
/1スイッチを使用してファイル中にあるコマンド群を実行させることもできます。
RMTCMD /l:mycmdfile.txt /system:S1030438

RMTOBDC -
RMTODBCユーティリティ・プログラムはRMTCMDに似たプログラムで、iSeries上でバッチ・コマンドやCLプログラムを実行するのに使用します。RMTODBCとRMTCMDの主な相違はRMTODBCユーティリティがiSeries Access for Linux ODBCドライバを使用してiSeries上でコマンドを実行するのに対して、RMTCMDユーティリティはOS/400 Remote Command Host Serverを使用するという点です。両ユーティリティのコマンドライン・オプションはまったく同じです。

iSeries Access for Linuxにはこうした重要なユーティリティの他にもユーティリティがあります。CWBTRCはコマンドライン式のトラブルシューティング用ユーティリティで、iSeriesに対するiSeries Access for Linux接続をトレースします。CWBNLTBLユーティリティは、ODBCドライバがiSeriesから取り出したデータの変換方法を変更する変換テーブルをダウンロードするために使用します。最後に、CWBCOPWRユーティリティ・プログラムは、iSeries Access for Linuxの高度な通信設定を変更するために使用します。

オープン・ソースの世界へ進出
IBMの新製品iSeries Access for Linuxの登場により、iSeriesがオープン・ソースのLinuxの世界につながるようになりました。しかしオープン・ソースだからといってすべてが無料であると誤解しないでください。5250エミュレーション・コンポーネントを使用するにはiSeries Accessクライアント・ライセンスが必要となります。iSeries Access for Linuxの最初のリリースはまだ機能的に十分でないところはありますが、iSeries Access製品ラインをLinuxプラットフォームに統合するための強力な機能をもたらす第一歩としては合格点といえるでしょう。

マイケル・オティ氏は小ホームページの提携誌iSeries NEWS、およびWindows & .NET Magazine、SQL Server Magazineなどのテクニカル・エディタで、ソフトウェア開発およびコンサルティング会社であるTECA, Inc.,社の代表取締役でもあります。



●unixODBC Driver Managerの構築とインストール
unixODBC Driver Managerのインストールは思っていたより複雑で時間のかかるプロセスとなってしまいました。私はまずインターネット上でダウンロードが可能になっていたRPMをいろいろ使用してunixODBCをインストールしようとしましたが、いずれのRPMもバージョンの不整合のためにうまくいきませんでした。簡単な方法ではうまくいかないとわかったので、次にソースコードからunixODBC Driver Managerを構築する方法に助けを求めました。しかしこれを行うにはまずLinux QTグラフィカル・ライブラリをダウンロードして構築しなければなりませんでした。(私はhttp://www.trolltech.com/ からダウンロードしました。)次に以下のコマンドを実行してQTをインストールしました。

cd /usr/local
tar -xvzf qt-x11free-3.2.2.tar.gz
mv qt-x11free-3.2.2 qt
cd qt


QTのインストール後、以下のエントリをetc/profileに追加する必要がありました。

QTDIR=/usr/local/qt
PATH=$PATH:$QTDIR/bin
MANPATH=$MANPATH:$QTDIR/man
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
export QTDIR PATH MANPATH LD_LIBRARY_PATH


上のエントリを追加することでQTのインストール先をシェルが認識できるようになります。そして以下のコマンドをQTディレクトリで使用してQTを構築しました。

./configure
make
make install


ダウンロードおよび構築プロセス全体で2〜3時間かかりました。以下のコマンドを使用してようやくunixODBCの構築とインストールを行いました。

gunzip unixODBC-2.2.6.tar.gz
tar xvf unixODBC-2.2.6.tar
mv unixODBC-2.2.6 unixODBC
cd unixODBC
./configure
make
make install


unixODBCの構築とインストールにはさらに1時間かかりました。



↑このページのトップへ
TOPPAGE

BELLDATA, Inc. Copyright reserved.