HHeLiBeXの日記 正道編

日々の記憶の記録とメモ‥

WAS CEでDB2を使う

WAS CE(中身はGeronimo)で、DB2をデータソースとして登録して使用するアプリを作ろうとしたら、データソースを作成して参照できるようにするまでにえらい苦労したので、手順をメモ。

環境

  • WAS CE v2.1.1.3
  • DB2 Express-C v9.1.2

データソースの作成

WAS CEの管理コンソールにアクセスしてログインしたら、次の手順で操作する。

  1. 左側の"Console Navigation"から「Services」-「Database Pools」を選択する。
  2. 「Using the Geronimo database pool wizard」リンクをクリックする。
  3. "Step 1: Select Name and Database"
    1. 「Name of Database Pool」に適当な名前を入れる(ここでは"jdbc/sample"とする)。
    2. 「Database Type」は"DB2 (DataDirect)"を選択しておく。
  4. "Step 2: Select Driver, JAR, Parameters"
    1. JDBC Driver Class」は"com.ibm.db2.jcc.DB2Driver"と入力する。
    2. 「Driver JAR」は次の2つを選択状態にする。
      • com.ibm.db2/db2jcc/9.1/jar
      • com.ibm.db2/db2jcc_license_cu/9.1/jar
    3. 「DB User Name」、「DB Password」、「Confirm Password」、「Port」、「Database」、「Host」を適切に設定する。
  5. "Step 3: Final Pool Configuration"
    1. 何も変更せずに「Test Connection」ボタンをクリックする。
  6. "Step 4: Test Connection"
    1. エラーが出るので、「Edit Settings」ボタンをクリックする。
  7. 「Pool Name」に適当な名前を(もう一度)入れる。
  8. JDBC Connect URL」に入力されているURLを書き換える。
  9. 再度「Test Connection」ボタンをクリックする。
  10. "Step 4: Test Connection"
    1. テスト結果を確認し、問題がなければ「Deploy」ボタンをクリックする。

JDBC Connect URL」を最初から修正してしまうと、なぜかNullPointerExceptionが発生してしまう‥

アプリケーション側の準備

実は、作成したデータソースの一覧に「Usage」というリンクがあり、そこをクリックすると、アプリケーションでどのような設定等を必要とするかという説明が表示される。
どういう中身のファイルを作るべきなのかというのも含めて「Usage」リンクの先に書いてあるので、簡単に言うと、次のいずれかを行う必要がある。

  • WARファイルの中に"geronimo-web.xml"というファイルを含める。配置場所は"WEB-INF"の直下。
  • WARファイルのデプロイの際に、"geronimo-web.xml"を「Plan」に指定した上で「Install」をする。(未確認)

商用のWASではどうだったか

そういえば、WARファイルなりEARファイルなりをデプロイする際に、web.xmlに書いてあるリソース参照とアプリサーバー側に登録されているデータソースを関連付けるという操作をしていた。
その操作に相当するのが、WAS CE(またはGeronimo)における"geronimo-web.xml(プランファイル)"というわけだ。