JBoss AS 4.2.0 が GA (Generally Available) リリースされたのに伴い、JBoss を最新バージョンに移行しました。 移行作業を行っていると、以前の失敗 (デフォルトのデータソースを MySQL に変更しようとして、JMS が動かなくなった!) が思い出されます。
今回は、その失敗について振り返ってみます。 ただし、各ソフトウェアは 2007 年 5 月 14 日時点の最新バージョンを使用しています。
JBoss AS 4.2.0 が GA (Generally Available) リリースされたのに伴い、JBoss を最新バージョンに移行しました。 移行作業を行っていると、以前の失敗 (デフォルトのデータソースを MySQL に変更しようとして、JMS が動かなくなった!) が思い出されます。
今回は、その失敗について振り返ってみます。 ただし、各ソフトウェアは 2007 年 5 月 14 日時点の最新バージョンを使用しています。
このレポートは、以下の環境について記述したものです。
|
JBoss AS では、デフォルトのデータソースに HSQLDB (ピュア Java の軽量 DB) を使用しています。 この HSQLDB を別のデータベースに変更するには、複数の設定ファイルを作成/編集/削除する必要があります。
なお、私が犯した失敗は HSQLDB 設定ファイル (hsqldb-ds.xml および hsqldb-jdbc2-service.xml) を削除せず、そのまま放置していたことです。
JBoss のデータソースを MySQL に変更する手順を説明します。
本稿では、JBoss のサーバインスタンスに default を使用しています。 他のサーバインスタンスをご使用の場合は、ご使用中の環境に合わせて適宜読み替えてください。
【注意】
以下の説明では、デフォルトのデータソースを HSQLDB から MySQL に変更します。
既存のデータソースに加えて、MySQL のデータソースを追加するのではないことにご注意ください。
MySQL の JDBC ドライバをライブラリとして配置します。
1. mysql-connector-java-5.0.5-bin.jar を ${JBOSS_HOME}/server/default/lib ディレクトリにコピーします。
MySQL データソースの接続設定ファイル (mysql-ds.xml) を作成します。
1. ${JBOSS_HOME}/docs/examples/jca/mysql-ds.xml を ${JBOSS_HOME}/server/default/deploy ディレクトリにコピーします。
2. jndi-name 要素の値を MySqlDS から DefaultDS に変更します。
3. connection-url 、user-name 、password 要素の値を変更します。
|
JMS の永続マネージャが MySQL を使用するように設定します。
1. ${JBOSS_HOME}/docs/examples/jms/mysql-jdbc2-service.xml を ${JBOSS_HOME}/server/default/deploy/jms ディレクトリにコピーします。
2. データソース名を MySqlDS から DefaultDS に変更します。
|
HSQLDB の設定ファイルを名前変更または削除します。
1. ${JBOSS_HOME}/server/default/deploy/hsqldb-ds.xml を名前変更または削除します。
2. ${JBOSS_HOME}/server/default/deploy/jms/hsqldb-jdbc2-service.xml を名前変更または削除します。
以上の設定で、JBoss のデフォルトのデータソースを MySQL に変更することができます。
ただし、EJB 3.0 の Entity Bean を使用する場合は、別途 persistence.xml を作成する必要があります。
詳しくは『JBoss 4.2 - Entity Bean の永続化に MySQL を使用する』を参照してください。
JNDI でデータソースをルックアップするには、**-ds.xml の jndi-name 要素の値を使用します。
以下に、簡単なサンプルを示します。
|
JBoss の各サービスの設定ファイルは、データソース名を DeaultDS と記述しています。 データソース名を DefaultDS から変更する場合は、それらの設定ファイルと整合性をとる必要があります。
以下に、データソース名として DefaultDS を参照している設定ファイルの一部を挙げます。
|