追加のソフトウェアを購入することなく、DB2/400 からの検索を Web サービス化して、結果を
XML 文書として受け取ることが可能です。
Web サービスのためのコーディングも必要なく、DADX という形式で XML ファイルを作成し、中にオペレーションと
SQL 文を書くだけで Web サービスとして使用できるようになります。
SQL 文を直に指定するだけでなく、XML エクステンダーを使用して DAD ファイルを指定するという形で実現することもできます。(つまり、SQL
文を指定するだけのシンプルな形では XML エクステンダーは必要ありません)
XML エクステンダーと組みあわせて使用するやり方はまた時間を見つけてやってみたいとは思いますが、
とりあえず SQL 文の実行結果を XML 文書で受け取る、というシンプルな形の
Web サービスを実行させてみたいと思います。
DB2 共通の機能である WORF (Web Services Object Runtime Framework) を使用します。
WORF を使用するには Tomcat や WebSphere などの Web コンテナが必要になります。
今回はシンプルにトライしてみようということで PC に Tomcat 5.0.19 を導入し、JTOpen
の JDBC ドライバを設定した環境で実行してみてます。
Tomcat を実行する Java 実行環境は 1.4.2、アクセスする iSeries は OS/400 V5R2 になっています。
Web Services Object Runtime Framework for DB2 をダウンロードして、解凍されたファイルの中から services.war を webapps
ディレクトリにコピーします。
WORF を実行するサーブレットの設定等が行われます。

Tomcat の common/lib サブディレクトリに worf.jar をコピーします。また、WORF
を動かすための activation.jar/mail.jar/soap.jar も同時にコピーします。
さらに JTOpen の JDBC ドライバーで iSeries にアクセスするため、jt400.jar
もコピーします。

Tomcat を起動して、"services" Web アプリケーションをアクセスしてみましょう。
以下の画面が出てくれば、とりあえずセットアップは OK です。

上記の services Web アプリケーションのいくつかのリンクは、V5R1 以降の OS/400
であれば、ちょっとしたセットアップをすれば動きます。
WORF を使用した DB2/400 アクセスの実行を確認するために、その「ちょっとしたセットアップ」をやってみましょう。
WORF の中から、どの iSeries に接続するか、どのユーザーで接続するか、デフォルトのライブラリは何か、といった設定を行う必要があります。
この設定は Web サービスを記述する DADX ファイルのグループごとに指定することが可能になっています。
WEB-INF サブディレクトリの groups サブディレクトリに、DADX ファイルをグループ化するためのサブディレクトリを作り、その中に group.properties というファイルを作成します。

group.properties ファイルはこんなかんじで作ります。
initialContextFactory= datasourceJNDI= dbDriver=com.ibm.as400.access.AS400JDBCDriver dbURL=jdbc:as400://as400e/sample userID=DB2USER password=PASSWORD namespaceTable=namespacetable.nst autoReload=true reloadIntervalSeconds=5 groupNamespaceUri=http://schemas.ibm.com/sample enableXmlClob=true |
JDBC ドライバーのクラス名や、アクセス先の URL、接続に使用するユーザー/パスワードなどで、特に難しいことはないですよね。
V5R1 から、サンプルデータベースを CREATE_SQL_SAMPLE というストアド・プロシージャを実行することで作成できるようになっています。

データベースの内容はこんなかんじです。
WORF での実行結果を確認するために "PLANNING" という部門名に "(計画部門)"
と入れてみました。

最初のページの 2段目にある list.dadx の TEST というリンクをクリックしてみましょう。以下のような結果がでてきます。
URL を見てみてください。
http://<ホスト名>/<Web アプリケーションのコンテクスト>/<DADX
グループのディレクトリ名>/<DADX のファイル名>/TEST になっているのがわかりますね。
この URL をそのままブラウザーでアクセスしても同じ画面になります。

ここでは例を載せていませんが、http://<ホスト名>/<Web アプリケーションのコンテクスト>/<DADX グループのディレクトリ名>/<DADX のファイル名>/WSDL で WSDL の動的生成と表示を行うこともできます。
|
|