やはり JBoss を OS/400 で動かすのであれば、使用される DB も DB2/400 に変更して稼動させたい、というものではないでしょうか。
今回は JBoss のデフォルトの Hypersonic DB から別の DB への変更の例として、DB2/400
に変更してみたいと思います。
OS/400 は V5R1、Java SDK は 1.3、JBoss は 3.2.1 を使用しています。JBoss のデフォルトインスタンスをそのまま変更するようにしています。
また、以下とほぼ同様な作業で JBoss は PC、データベースは DB2/400 という構成にもできます。
まず最初に JBoss 用のデータベースを作成します。
別に名前は JBOSS でなくても OK です。その場合は、以下の SQL の "JBOSS/"
というテーブル等を修飾する部分を適宜変更してください。
CREATE COLLECTION JBOSS (V5R1)
CREATE SCHEMA JBOSS (V5R2)
次に JMS のために必要なテーブルを 2つ作成しておきます。
CREATE TABLE JBOSS/JMS_MESSAGES (MESSAGEID INT NOT NULL,
DESTINATION VARCHAR ( 255) NOT NULL, TXID INT , TXOP CHAR ( 1),
MESSAGEBLOB BLOB , PRIMARY KEY (MESSAGEID, DESTINATION))
CREATE TABLE JBOSS/JMS_TRANSACTIONS ( TXID INTEGER )
以下が実行例です。

server/default/conf ディレクトリの中にいろいろな JBoss の設定ファイルがありますが、この中で CMP の設定のためのファイルが 2つあり、編集が必要になります。
まず CMP 2.x 用の standardjbosscmp-jdbc.xml です。
以前見たように、もともと DB2/400 用の設定用の定義はありますので、現在 Hypersonic 用になっている部分 (<detasource-mapping>) の値を "DB2/400" に変更するだけで OK です。

CMP 1.1 用の standardjaws.xml にも同様の変更を行います。

JBoss の server/default/deploy に以下のように jt400-ds.xml を作成します。(これも特別にこの名前でないといけない、ということはありません)
内容は JDBC でアクセスする時の URL、JDBC ドライバーのクラス名、接続に使用するユーザー名、パスワードなどになります。
今回は JT Open の JDBC ドライバーを使うことにしています。(別に Type2 を使っても支障はないでしょう。ただ単に今回はまったく同じ設定で PC で JBoss/ DB は AS という構成も試して見たのでこうなっています)
またドライバーのクラス名の前の接続 URL の指定ですが、PC からアクセスする場合はもちろん
localhost では駄目でちゃんとしたホスト名が必要になります。
また、データベースを作成する際に JBOSS ではないデータベース名にした場合は、この接続
URL の最後の部分 (ここでは "/JBoss/" の部分) をあわせて変更してください。
JBOSSUSER というユーザーを、パスワード PASSWORD で作成しておきます。適切な権限を持っているようにしておいてください。
こちらが作成例になります。

次に、起動インスタンスから JDBC ドライバーをどうやって参照できるようにするかですが、
jt400.jar の在り処を起動シェルスクリプトのクラスパスに指定してやれば OK
ですし、以下のように server/default/lib ディレクトリに jt400.jar をコピーしてしまっても
OK です。

/home/jboss-3.2.1/server/default/deploy/hsql-ds.xml は削除します。
/home/jboss-3.2.1/server/default/lib/hsqldb.jar と /home/jboss-3.2.1/server/default/lib/hsqldb-plugin.jar
も削除します。
JBoss を起動します。
以下のように [PersistenceManager] が JDBC ドライバーを参照しようとして jt400.jar にアクセスしているのがわかります。

無事エラーもなく、起動が完了したのが確認できます。

実際に EJB がデプロイできるかどうか、「JBoss 入門」のサンプルである step3.ear ファイルをそのまま CD から /home/jboss-3.2.1/server/default/deploy ディレクトリにコピーしてみました。
デプロイされているのが確認できます。

JBOSS データベースの中には自動的に STEP3 というテーブルが作成されているのが確認できます。

ブラウザからアクセスして挙動を見てみましょう。

カウンタがカウントアップされていきます。

上記の状態で STEP3 テーブルの内容をみると以下のようになっていました。(カウンタの値が 10)

今回は JBoss を PC で稼動させ、データベースを DB2/400 にする、という構成も視野に入れために JTOpen の JDBC ドライバー (Type4) を使用しました。
OS/400 上で稼動させることが決まっているのであれば、Type2 の DB2/400 Native
の JDBC ドライバーを使った方がパフォーマンスなどを考えるとお勧めだと思います。
... ということで、今回の続編として、Native JDBC ドライバーを使用した構成のしかたもこちらで紹介してますのでぜひご参考に。
|
|