HomeDocumentation > 4. Apache Geronimo への移行 > 4.7. JBoss to Geronimo - JDBC の移行
{scrollbar}

top
この文章は、JBoss v4 向けに開発された JDBC アプリケーションを Apache Geronimo へ移行する手助けとなります。この文章は、アプリケーション移行の様々な種類をカバーする一連の文章の一部です。

この文章は、JBoss v4 から Apache Geronimo へ JDBC アプリケーションを移行する順をおった手順の詳細だけでなく、2つのアプリケーション・サーバーの JDBC 実装の違いの詳細も書かれています。一般的な出発点(ソース環境)として、この文章には JBoss ソース環境に Online Brokerage サンプル・アプリケーションをデプロイする手順があります。次に Apache Geronimo へアプリケーションを移行、デプロイする手順を解説します。

この文章は、以下のセクションで構成されています。

JDBC 実装の解析 implementation

JDBC 実装は各ベンダーごとにさまざまです。このセクションの目的は、JBoss と Apache Geronimo との間で JDBC 固有の機能の違いを説明することで、違いが明確になり、移行前にそれ相応に計画することができるようになります。

JBoss も Geronimo も JDBC リソースへの接続には J2CA コネクターを利用しているので、プラットフォーム固有の JDBC 機能を比較してみると、いくつかの J2CA 機能は重複しています。 

メモ: Geronimo はまだ生まれたばかりなので、JBoss が提供するいくつかの機能はまだ Geronimo に実装されていないかもしれません。

機能

Apache Geronimo

JBoss v4

JDBC 接続

Geronimo は JDBC による直接統合を有していませんが、一般的な J2CA フレームワークを通じての接続をサポートしています。TranQL プロジェクトは各種データベースの J2CA アダプターです。

JBoss での JDBC 接続は、JCA 仕様に基づく JDBC コネクターを通じて行われます。

JCA 実装

Geronimo は JCA 1.5 仕様をサポートし、JCA 1.0 仕様と互換性があります。

JBoss AS 4.0 は JCA (Java Connector Architecture) 1.5 仕様を実装しています。JBoss AS 3.2 では JCA 1.0 でした。

データ・ソース・サポート

TranQL はデータソース、コネクション・プール・データソース、XA データソース向けの包括的なラッパーです。

以下の5種類のデータソースをサポートしています。

  • no-tx-datasource
  • local-tx-datasource
  • xa-datasource
  • ha-local-tx-datasource
  • ha-xa-datasource

データソース・フェイルオーバー

TranQL は特定のデータベース(Apache Derby、Oracle や、もうすぐ DB2 も含まれます)向けに特化したドライバーで、ドライバーの拡張機能との密接な統合をもたらします。
この改装では、ロード・バランシングやフェイル・オーバーといった機能が提供されます。また、データベースのクラスタリングやフェイル・オーバーのために C-JDBC ラッパーも利用できます。

JBoss は2つのデータ・ソースの実装により、データ・ソースのフェイル・オーバーが可能になります。
1) ha-local-tx-datasource - ローカル・トランザクション向け
2) ha-za-datasource -  分散トランザクション向け

XA のサポート

XA トランザクション、ローカル・トランザクション、トランザクションなしをサポートしています。

XA トランザクション、ローカル・トランザクション、トランザクションなしをサポートしています。

コネクション・マネージャーの構成可能性

J2CA フレームワークは各種コネクション・フレームワークの違う部分を組み込む異ができるインターセプターです。
現在はまだカスタムのコネクション・マネージャーを組み込むことはできませんが、すぐにこの機能は追加されます。

必要に応じてカスタムのコネクション・マネージャーを組み込むことができます。

JTA の実装

トランザクションのサポートは JOTM と HOWL によって与えられます。

JBossJTA によって JTA のすべてをサポートしています。

コネクション・プーリングと管理

Geronimo のコードと TranQL がコネクション・プーリングと管理に利用されます。

JBossCX フレームワークがコネクション・プーリングと管理に利用されます。

以前のドライバーのサポート

Geronimo は TranQL コネクターの JDBC - JCA ラッパーを通じて以前のドライバーをサポートします。JDBC 3.0 と 2.1 をサポートしています。

JBoss は、まだ JCA- JDBC ドライバーが実装されていない RDBMS への接続を JDBC ドライバーの JCA  ラッパーによって行います。

Back to Top

サンプル・アプリケーション sampleApp

この文章には、JBoss から Geronimo へアプリケーションの移行をデモンストレーションするサンプル・アプリケーションがあります。名前は Online Brokerage です。オンライン取引でユーザーが株の売買を行うシナリオです。このアプリケーションには以下の5つのページがあります。

  • Login ページ
  • Registration ページ
  • User Information ページ
  • Available Stocks ページ
  • User Portfolio ページ

以下の図は、アプリケーションのフローです。

最初に、ユーザーは Login ページに接続します。ログインページからユーザーはユーザー名とパスワードを入力します。ユーザー名またはパスワードが不正の場合は、アプリケーションはエラーメッセージを表示し、そのログインを拒否します。ユーザー名とパスワードが正確であれば、すべての株についてその時点の株価を見ることができる Available Stocks ページを開きます。

ユーザーは口座にある利用可能な金額に応じて、購入したい株を Buy ボタンをクリックすることで選択します。

取引が無事完了すると、Available Stocks ページ が表示され、必要ならばさらに株が購入できます。

株の購入に資金が不足していたら、アプリケーションはエラーとなり取引を進めません。エラーメッセージが Available Stocks ページの上部に表示されます。このページには User Info ボタンがあります。これをクリックすると、User Info ページが表示され、ユーザーの詳細情報が表示されます。

Available Stocks ページには、ユーザーが所有するすべての株を確認できる Portfolio へのリンクがあります。このページでは、ユーザーは株と株数を選んで売却することができます。また、User Cash 欄に現在の利用可能な現金の学が表示されています。所有している数より多くの株を売ろうとすると、アプリケーションはエラーになります。エラーメッセージが同じページ上に表示されます。売却が成功すると、売却金額がユーザーの現金に加算されます。

quantity テキストボックスにはユーザーが持っている特定の会社の株の数量が表示されています。Quantity to Sell 欄では、その会社の株の売りたい数量を入力することができます。売却と購入にはラジオボタンをチェックします。このことは数値を入力した後になされます。もし quantity to sell テキストボックスが入力されていないか、ラジオボタンがチェックされずに sell ボタンを押すと、必須入力欄が空であるという JavaScript のアラートが表示されます。数量欄に数値以外の文字が入っていると、別のアラートが表示されます。この動き方は、Available Stocks Page と同じようなものです。

新規ユーザーは、login ページで Register ボタンをクリックすることで登録できます。Registration ページでは、ユーザーID、ユーザー名、パスワード、住所と利用可能現金を入力することができます。

Back to Top

アプリケーション・クラスと JSP ページ

オンライン取引サンプル・アプリケーションには、以下のパッケージが含まれます。

  • com.dev.trade.bo
    • Stock - 会社の株を表す
    • User - ユーザーを表す
  • com.dev.trade.dao
    • TradeDAO - すべてのデータベース接続メソッドを含む
  • com.dev.trade.exception
    • DBException - すべてのデータベースの例外を発生させるカスタム例外
  • com.dev.trade.servlet
    • TradeDispatcherServlet - すべてのリクエストを、要求されたデータベース機能を実行した後に JSP へ送る処理

オンライン取引には、以下の JSP ページを含みます。

  • login.jsp - アプリケーションのログインページ
  • error.jsp - アプリケーションのデフォルトのエラーページ
  • register.jsp - ユーザー登録のページ
  • stocks.jsp - ユーザーが株を購入できる Available Stocks ページ
  • userstocks.jsp - ユーザーの保持する株を表示する portfolio ページで、ユーザはここで株を売却する

Back to Top

利用するツール

オンライン取引アプリケーションの開発とビルドのツールは以下の通りです。

Eclipse

Eclipse IDE はサンプル・アプリケーションの開発に利用されています。とても強力で、人気のあるオープンソースの開発ツールです。プラグインの統合によって、JBoss と Geronimo の両方で利用可能です。Eclipse は以下の URL からダウンロードできます。
http://www.eclipse.org

Apache Ant

Ant はピュア Java のビルド・ツールです。war ファイルをビルドし、オンライン取引アプリケーション向けデータベースを作成するために利用されています。Ant は以下の URL からダウンロードできます。
http://ant.apache.org

Back to Top

サンプル・データベース

このアプリケーションのデモンストレーションに利用するデータベースは MySQL です。サンプル・データベース名は tradedb です。STOCKS、USERS、TRADINGACCOUNT の3つのテーブルも持ちます。各テーブルは以下のフィールドを持ちます。

Table Name

Fields

STOCKS

ID (PRIMARY KEY)
NAME
PRICE

USERS

USERID (PRIMARY KEY)
NAME
PASSWORD
ADDRESS
CASH

TRADINGACCOUNT

USERID
STOCKID
QUANTITY

TRADINGACCOUNT テーブルは、各ユーザが所有する株を保存するために利用されます。USER と STOCKS テーブルはユーザーと株の詳細情報を保存するために利用されます。これは単にサンプル・アプリケーションですので、ユーザーの持つ金額の量は、ユーザー登録時にユーザー自身に入力してもらいます。

このデータベース生成用の DDL は db.sql です。brokerage/sql ディレクトリーにあります。

Back to Top

JBoss 環境 JBoss

このセクションでは、サンプルの JBoss 環境がどのように、どこにインストールされるかを示すので、貴方はこのシナリオを貴方の実装に合わせることができます。

JBoss のインストール、構成と管理の詳細な説明については、JBoss のドキュメントにあります。JBoss のウェブ・サイトで最新のドキュメントをチェックしてください。

以下のリストはインストールと初期環境の構成を完了させ、サンプル・アプリケーションのデプロイの準備を完了させるまでに必要な一般的なタスクを示します。 

  1. 製品の説明書にしたがって、JBoss v4 をダウンロード、インストールしてください。以下、インストール・ディレクトリーを <jboss_home> として参照します。
  2. デフォルトの JBoss v4 アプリケーション・サーバーのコピーを作ってください。<jboss_home>\server\default ディレクトリーを再帰的に <jboss_home>\server\<your_server_name> へコピーしてください。
  3. <jboss_home>\bin ディレクトリーで run.sh -c <your_server_name> コマンドを入力し、新しいサーバーを始動してください。
  4. サーバーが始動すると、実行中かどうかの確認はウェブ・ブラウザーで http://localhost:8080を開くことでできます。JBoss Welcome ウィンドウが表示され、JBoss コンソールへ接続することができます。
  5. アプリケーション・サーバーが起動し、実行されたら、次はサンプル・アプリケーションに必要なソフトウェアをインストールし、構成するステップです。このステップは以下のセクションで説明します。

Back to Top

事前に必要なソフトウェアのインストールと構成

この文章でのオンライン取引アプリケーションのビルドと実行のために、ビルド・ツールとアプリケーションが利用するデータベースをインストールし、構成する必要があります。

データベースのインストール

前述のとおり、このアプリケーションは MySQL データベースを利用しています。次の URL からダウンロードできます。
http://www.mysql.com
MySQL のインストールと構成は、かなり直感的です。MySQL リファレンス・マニュアルは次の URL からダウンロードできます。

http://dev.mysql.com/doc/mysql/en

メモ:簡単に構成するために、私はセキュリティ設定を変更し、root ユーザーに "password" というパスワードをつけました。このユーザー ID とパスワードは後ほどサンプル・アプリケーションからデータベースへ接続する際に利用されます。

サンプル・データベースの作成

MySQL のインスタンスが構成されたら、オンライン取引アプリケーションが利用するサンプル・データベースを作ります。コマンド・ラインから以下のコマンドを入力し、MySQL モニターを始動してください。

mysql -u root -ppassword

-p フラグとパスワードとの間にブランク文字がないことに注意してください。

MySQL コマンド・インターフェースが起動すると、以下のような表示になります。 

solidMySQL monitor interface Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 to server version: 4.1.14-nt Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql>

MySQL コマンド・インターフェースから、以下のコマンドを入力し、tradedb サンプル・データベースを作成してください。

mysql> create database tradedb;

Ant の構成

前述のとおり、オンライン取引アプリケーションのビルドには Apache Ant を利用しています。もしまだ Ant をインストールしていなかったら、そろそろインストールして、 <ant_home>\bin ディレクトリーをシステムの path 変数に追加してください。

Apache Ant は以下の URL からダウンロードできます。

http://ant.apache.org

Back to Top

リソースの構成

オンライン取引アプリケーションとデータベースのビルドとデプロイを成功させるために、まずはいくつかのリソースを構成する必要があります。このセクションでは、JBoss での MySQL データ・ソースの構成方法を説明します。

データ・ソース

オンライン取引アプリケーションはウェブ・アプリケーションです。データ・ソースとしては MySQL データベースに接続します。JBoss を MySQL と一緒に利用するために、MySQL のドライバーを JBoss サーバーのクラスパスにコピーする必要があります。ドライバーはデータベース・ベンダーから提供され、Connector/J 3.0 と呼ばれます。以下の URL からダウンロードできます。
http://dev.mysql.com/downloads/connector/j/3.1.html

ドライバーをダウンロードし、解凍したあと、mysql-connector-java-3.1.14.jar ファイルを <jboss_home>\server\<your_server_name>\lib ディレクトリーにコピーしてください。

JBoss でのデータ・ソースの構成は、XML 構成ファイルによって行われます。JBoss のインストールには MySQL を含む多くの人気のあるデータベース向けのサンプル構成ファイルを含みます。

MySQL 向けのサンプル・データ・ソース構成ファイルは mysql-ds.xml です。<jboss_home>\docs\examples\jca ディレクトリーにあります。

JBoss サーバーをデプロイしたディレクトリー (<jboss_home>\server\<your_server_name>\deploy) に mysql-ds.xml ファイルをコピーして、以下のように編集してください。

xmlsolidUpdate the mysql-ds.xml file <jndi-name>jdbc/TradeDB</jndi-name> <connection-url>jdbc:mysql://localhost:3306/tradedb</connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>root</user-name> <password>password</password> <exception-sorter-class-name> org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter </exception-sorter-class-name>

<local-tx-datasource> タグの中にある他のすべてのタグを削除して、このファイルを保存してください。JBoss が自動的にデータ・ソースをデプロイします。

Back to Top

サンプル・アプリケーションのビルド

この文章でのオンライン取引アプリケーションには、アプリケーションのビルドとデータベースの生成に利用できる Ant スクリプトが含まれています。オンライン取引アプリケーションを以下の URL からダウンロードしてください。

Online Brokerage

zip ファイルを解凍すると、brokerage ディレクトリーが作られます。このディレクトリーで build.properties ファイルを開き、環境に合わせてプロパティを編集してください。以下に例を示します。

solidUpdate the build.properties file # Replace server.name with either jboss or geronimo depending on which server to deploy. server.name=jboss #Replace <JAVA_HOME> with your JDK home directory java.home=<JAVA_HOME> #Replace <JBOSS_HOME> with the root directory for your specific JBoss server <jboss_home>\servers\<server_name> jboss.home=<JBOSS_HOME> #Replace <GERONIMO_HOME> with the root directory for Geronimo geronimo.home=<GERONIMO_HOME> #fully qualified name of the JDBC driver class db.driver=com.mysql.jdbc.Driver #database URL db.url=jdbc:mysql://localhost:3306/tradedb #database userId db.userid=root #database password db.password=password #script files for creating the tables sql.file=sql/db.sql #location of the jdbc driver jar. driver.classpath=<jboss_home>/server/<your_server_name>/lib/mysql-connector-java-3.1.14-bin.jar

build.properties ファイルの driver.classpath を設定する際に、スラッシュ "/" を利用することに注意してください。そうしないと jar ファイルが見つかりません。

コマンド・プロンプトやシェルで、brokerage ディレクトリーに移動して、ant を実行してください。そうすると、war ファイルをビルドし、brokerage ディレクトリー直下にファイルを配置します。ant によってビルドされた war は、JBoss 固有のデプロイメント・ディスクリプターである jboss-web.xml ファイルを WEB-INF ディレクトリーに含みます。以下に例を示します。

xmlsolidJBoss deployment descriptor <?xml version="1.0" encoding="UTF-8"?> <jboss-web> <context-root>/brokerage</context-root> <resource-ref> <res-ref-name>jdbc/TradeDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <jndi-name>java:jdbc/TradeDB</jndi-name> </resource-ref> </jboss-web>

resource-ref 要素が、web.xml 内の jdbc/TradeDB という名前で参照されるリソースと、MySQL データ・ソースのような java:jdbc/TradeDB という JNDI 名のリソースとを結びつけます。

Back to Top

サンプル・アプリケーションのデプロイ

オンライン取引アプリケーションを JBoss にデプロイするには、先ほど Ant でビルドした brokerage.war ファイルを以下に示すディレクトリにコピーします。

<jboss_home>\server\<your_server_name>\deploy

もし JBoss がすでに始動していたら、自動的にアプリケーションがデプロイされ、始動されます。そうでなければ、アプリケーションは次回始動時にデプロイされ、始動されます。 

Back to Top

サンプル・アプリケーションのテスト

アプリケーションのテストには、ウェブ・ブラウザーを開き、以下の URL に接続してください。

http://localhost:8080/brokerage

オンライン取引アプリケーションのログイン画面が表示されます。user name 欄に j2ee 、password 欄に password を入力し、login をクリックしてください。以下の図のような available stocks ページが表示されます。アプリケーションは構成され、実行されています。

!availableStocks.jpg!

Pro Tip

もしデータベースの root 用に他のパスワードを利用したいなら、`password' という記述にあるパスワードを書き換えてください。変更するのは以下の3箇所です。

  1. MySQL インスタンス構成
  2. データ・ソース構成ファイル
  3. Ant ビルド・スクリプトが利用する build.properties ファイル

Back to Top

Geronimo 環境 Geronimo

以下の URL から Geronimo をダウンロードし、インストールしてください。 

http://geronimo.apache.org/downloads.html

そこにあるリリース・ノートには、システム要件とインストール、始動方法がが明示されています。以下、この文章では Geronimo のインストール・ディレクトリーを <geronimo_home> とします。

TCP/IP ポートの衝突

もし JBoss と Geronimo を同じマシンで実行しようとすれば、少なくともどちらかのサーバではデフォルトのサービス・ポートを変更する必要があります。

Back to Top

リソースの構成

Geronimo では、JDBC リソースは J2EE コネクターを利用して実装されています。したがって、JDBC データ・ソースのデプロイのために Geronimo 固有のデプロイメント・プランを記述する必要があります。加えて、デプロイには tranql-connector-ra-1.3.rar ファイルをデプロイヤーに与える必要があります。この RAR ファイルには、Geronimo のコネクション・プールの管理ロジックを含んでいます。

Geronimo でオンライン取引アプリケーションを実行するために、JBoss で利用したものと同じ MySQL データベース を利用します。Geronimo 環境に準備のためにするべき作業は、データ・ソースを構成するだけです。

データ・ソースの構成

最初に、データ・ソースのデプロイメント・プランが参照できるように Geronimo リポジトリーに MySQL データベースのドライバーをコピーします。

Geronimo  リポジトリーは <geronimo_home>/repository にあります。このディレクトリーの中に、mysql/mysql-connector-java/3.1.14-bin というディレクトリーを作成し、そこに mysql-connector-java-3.1.14-bin.jar ファイルをコピーしてください。次は、データ・ソースのデプロイメント・プランを作成します。

データ・ソースの種類の違い

Geronimo がサポートするデータ・ソースは以下の3種類あります。
グローバル・データ・ソース - Geronimo インスタンスにあるすべてのアプリケーションから参照できます。アプリケーション・スコープ・データ・ソース - 定義をした単一のアプリケーションから参照できます。モジュール・スコープ・データ・ソース - 定義した単一のモジュールから参照できます。
この移行の演習ではグローバル・データ・ソースを利用します。他のデータ・ソース2種類の構成と利用については、以下の developerWorks の文章を参照してください。
http://www.ibm.com/developerworks/opensource/library/os-ag-jdbc/

Back to Top

データ・ソースのデプロイメント・プランの作成

まず、mysql-geronimo-plan.xml という xml ファイルを作成してください。以下に示すプランをコピーして、この xml ファイルへ貼り付けてください。

xmlsolidData source deployment plan <?xml version="1.0" encoding="UTF-8"?> <connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2"> <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"> <dep:moduleId> <dep:groupId>user</dep:groupId> <dep:artifactId>jdbcdatasource</dep:artifactId> <dep:version>2.0</dep:version> <dep:type>car</dep:type> </dep:moduleId> <dep:dependencies> <dep:dependency> <dep:groupId>mysql</dep:groupId> <dep:artifactId>mysql-connector-java</dep:artifactId> <dep:version>3.1.14-bin</dep:version> <dep:type>jar</dep:type> </dep:dependency> </dep:dependencies> </dep:environment> <resourceadapter> <outbound-resourceadapter> <connection-definition> <connectionfactory-interface> javax.sql.DataSource </connectionfactory-interface> <connectiondefinition-instance> <name>TradeDS</name> <config-property-setting name="UserName"> root </config-property-setting> <config-property-setting name="Password"> password </config-property-setting> <config-property-setting name="Driver"> com.mysql.jdbc.Driver </config-property-setting> <config-property-setting name="ConnectionURL"> jdbc:mysql://localhost:3306/tradedb </config-property-setting> <config-property-setting name="CommitBeforeAutocommit"> false </config-property-setting> <config-property-setting name="ExceptionSorterClass"> org.tranql.connector.NoExceptionsAreFatalSorter </config-property-setting> <connectionmanager> <local-transaction/> <single-pool> <max-size>10</max-size> <min-size>0</min-size> <blocking-timeout-milliseconds> 5000 </blocking-timeout-milliseconds> <idle-timeout-minutes> 30 </idle-timeout-minutes> <match-one/> </single-pool> </connectionmanager> </connectiondefinition-instance> </connection-definition> </outbound-resourceadapter> </resourceadapter> </connector>

上記リストに示すプランは JDBC でデータベースに接続するための J2EE コネクターをデプロイするものです。ルート要素は <connector> 要素です。この要素は、以下の4つの属性(訳注:3つしかありませんが...)を持ちます。

  • xmlns - XML ネームスペースを定義します。
  • configId - Geronimo がコネクターを内部で参照する際の名称を定義します。
  • parentId - この構成の親構成を定義します。

他の重要な要素や属性は以下の通りです。

  • connectionfactory-interface - おそらく javax.sql.DataSource になります。
  • connectiondefinition-instance - データベースへの接続に必要な構成プロパティを含みます。
  • connectionmanager - geronimo 接続マネージャーの構成設定を含みます。
  • config-property-setting - ひとつのコネクターの構成プロパティを記述します。
  • name - データ・ソースの名称です。
  • local-transaction - この要素の存在によって、リソース・アダプターがローカル・トランザクションをサポートすることができるようになります。もし 'local-transaction' の代わりに 'no-transaction' 要素があれば、リソース・アダプターはトランザクションをサポートしなくなります。もし 'local-transaction' の代わりに 'xa-transaction' 要素があれば、リソース・アダプターは XA トランザクションをサポートするようになります。
  • single-pool - max-size や min-size などのシングル・プール向けコネクション・プールの構成プロパティを含みます。もし 'single-pool' のかわりに 'no-pool' 要素があれば、コネクションはプールされません。もし 'single-pool' のかわりに 'partitioned-pool' 要素があれば、パーティション・タイプのコネクション・プールがいくつか作成されます。
  • max-size - 最大の同時接続数です。
  • min-size - 最小のコネクション・プール数です。
  • blocking-timeout-milliseconds - プールにあるすべてのコネクションが利用中のときに、例外を発生させる前にどれだけ待機するかの時間です。
  • idle-timeout-minutes - コネクションがアイドル状態のときに、タイムアウトさせるまでの時間を分単位で指定します。

以下の表に、config-property-setting 要素で記述する構成プロパティを示します。

Configuration Property

Meaning

Driver

JDBC ドライバーの完全修飾クラス名です。

ConnectionURL

JDBC 接続の URL です。ドライバーがサポートするパラメータを含めることができます。 例えば、MySQL では JDBC 接続 URL に ?socketFactory=com.mysql.jdbc.NamedPipeSocketFactory を付加すると、TCP/IP の代わりに名前つきパイプを利用できます。

UserName

データベースへの接続に必要なユーザー名です。

Password

データベースへの接続に必要なパスワードです。

CommitBeforeAutocommit

setAutoCommit (true) が呼び出されたときにコミットしていない保留のデータがある場合、データが変更されます。

ExceptionSorterClass

発生した例外が致命的かそうでないかの情報を与えます。

MySQL のデプロイメント・プランを作成したあと、デプロイヤー・ツールを実行してコネクション・プール・データ・ソースをデプロイする必要があります。

デプロイヤー・ツールを利用するには、サーバーが起動し、実行されている必要があるので、Geronimo のインスタンスを始動してください。

コマンドラインで <geronimo_home>/bin ディレクトリーに移動し、以下のコマンドを実行してください。 

./deployer.cmd --user system --password manager deploy <brokerage_home>\plan\mysql-geronimo-plan.xml <geronimo_home>\repository\org\tranql\tranql-connector-ra\1.3tranql-connector-ra-1.3.rar

このとき、brokerage_home というのは brokerage  ディレクトリーのパスです。このコマンドでデータ・ソースがデプロイされます。
これで移行の準備が整いました。

Back to Top

移行の手順 migration

Geronimo は以下のような実行時の JNDI プロパティの設定による外部のリソース(JDBC データ・ソース)への接続はサポートしていません。

solid Context ctx = null; Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "Geronimo specific factory"); env.put(Context.PROVIDER_URL, "provider URL for geronimo"); ctx = new InitialContext(env)

これは、デプロイ時に JSR-77 に基づくコンポーネントのオブジェクト名参照の解析を行うためです。オンライン取引アプリケーションを Geronimo に移行するために、まず jboss-web.xml ファイルを Geronimo 固有の記述ファイルをである geronimo-web.xml ファイルに置き換える必要があります。

geronimo-web.xml ファイルは <brokerage_home>\web\descriptors\geronimo ディレクトリー内にあります。以下のような内容です。 

xmlsolidgeronimo-web.xml <?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.1" xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1"> <dep:environment xmlns:dep="http://geronimo.apache.org/xml/ns/deployment-1.1"> <dep:moduleId> <dep:groupId>BrokerageApp</dep:groupId> <dep:artifactId>MySqlDS</dep:artifactId> <dep:version>2.0</dep:version> <dep:type>car</dep:type> </dep:moduleId> <dep:dependencies> <dep:dependency> <dep:groupId>user</dep:groupId> <dep:artifactId>jdbcdatasource</dep:artifactId> <dep:version>2.0</dep:version> <dep:type>car</dep:type> </dep:dependency> </dep:dependencies> </dep:environment> <context-root>/brokerage</context-root> <resource-ref> <ref-name>jdbc/TradeDB</ref-name> <resource-link>TradeDS</resource-link> </resource-ref> </web-app>

例に示す通り、この構成の親は MySQL J2EE コネクターです。naming:resource-ref  要素が TradeDS データ・ソースと jdbc/TradeDB という名前を結びつけています。context-root 要素はアプリケーションのコンテキスト・ルートを定義します。

このアプリケーションを Geronimo で実行するには、たったこれだけの変更が必要となります。

Geronimo 向けに .war ファイルをビルドするために、サンプルアプリケーションにある build.properties ファイルを変更し、jboss-web.xml を取り除き、geronimo-web.xml を入れてください。server.name プロパティを geronimo に変更すれば、作業完了です。また、ビルド・スクリプト内にある geronimo.home プロパティの設定も必要です。

変更する必要のある2つの値は、以下の通りです。

server.name=geronimo
geronimo.home=<geronimo_home>

build.properties はビルド・スクリプトによって利用され、Geronimo 向けの J2EE 仕様を拾い出します。もし jboss.home プロパティがまだ有効であれば、このプロパティを設定する必要がありません。このプロパティが設定されていないか jboss.home が有効でなければ、編集エラーになります。また、あたらしいドライバーの jar を指し示す driver.classpath も設定する必要があります。コマンド・プロンプトから brokerage ディレクトリーに移動し、ant を実行してください。これで war ファイルが brokerage ディレクトリーに作成されます。

Back to Top

移行されるサンプル・アプリケーションのデプロイ

移行されるオンライン取引アプリケーションのデプロイには、Geronimo サーバーが起動し、実行中である必要があります。

コマンドラインで <geronimo_home> ディレクトリー(訳注:<geronimo_home>/bin の誤り?)に移動し、以下のコマンドを入力してください。 

./deployer --user system --password manager deploy <brokerage_home>/brokerage.war

アプリケーションがデプロイされたら、ウェブ・ブラウザーを開き、以下の URL へ接続してください。

http://localhost:8080/brokerage

前に JBoss でテストしたときと同じユーザー名とパスワードでログインしてください。

Back to Top

まとめ summary

この文章では、サンプル・アプリケーションを JBoss から Apache Geronimo アプリケーション・サーバーへ移行する方法を紹介しました。手順にしたがって順にアプリケーションをビルド、デプロイし、実行し、それから Geronimo 環境へ移行しました。

以下のリストでは、このサンプル・アプリケーションの移行によって見つかった大きな違いをまとめています。

  1. Geronimo 固有のデプロイメント記述ファイルではリソース参照名がデータ・ソース名に結び付けられます。JBoss 固有のデプロイメント記述ではリソース名はデータ・ソースの JNDI 名に結びつけられます。
  2. JBoss では、データ・ソースのデプロイはただ deploy ディレクトリに構成ファイルをコピーするだけでよいのですが、Geronimo ではデプロイヤー・ツールを利用する必要があります。
  3. 現在では、Geronimo は実行時に JNDI プロパティの設定による外部のリソース(JDBC データ・ソースなど)への接続はサポートしていません。このようなリソースは、デプロイ時に指定されている必要があります。

Back to Top