第4章 ツールとヒント
4.1. 移行に役立つリソース
4.1.1. 移行に役立つリソース
- ツール
- 設定変更の一部を自動化するのに役立つツールが複数あります。詳細は 「移行に便利なツールについて理解する」を参照してください。
- デバッグのヒント
- アプリケーションの移行時に発生する問題やエラーの最も一般的な原因と解決法については 「移行の問題のデバッグと解決」を参照してください。
- 移行の例
- JBoss EAP 6 へ移行されたアプリケーションの例については、 「サンプルアプリケーションの移行の確認」を参照してください。
4.1.2. 移行に便利なツールについて理解する
移行に便利なツールは複数あります。これらのツールとその説明の一覧は次のとおりです。
- Tattletale
- モジュラークラスローディングの変更に伴い、アプリケーション依存関係を検索し、修正する必要があります。Tattletale は依存するモジュールの名前を特定し、アプリケーションに対して設定 XML を生成する時に便利なツールです。
- IronJacamar 移行ツール
- JBoss EAP 6 ではデータソースとリソースアダプターは個別のファイルに設定されていません。データソースとリソースアダプターはサーバー設定ファイルに定義され、新しいスキーマを使用します。IronJacamar 移行ツールは以前の設定を JBoss EAP 6 が想定する形式に変換するときに便利です。
4.1.3. Tattletale を用いたアプリケーション依存関係の検索
JBoss EAP 6 のモジュラークラスローディングの変更にともない、アプリケーションを移行するときに ClassNotFoundException または ClassCastException トレースが JBoss のログに記録されることがあります。このエラーを解決するには、例外が指定するクラスが含まれる JAR を探す必要があります。
jboss-deployment-structure.xml ファイルが含まれるようにすることが可能です。
手順4.1 Tattletale をインストールおよび実行してアプリケーションの依存関係を検索する
注記
4.1.4. Tattletale のダウンロードとインストール
手順4.2 Tattletale のダウンロードとインストール
- http://sourceforge.net/projects/jboss/files/JBoss%20Tattletale より Tattletale バージョン 1.2.0.Beta2 またはそれ以降のバージョンをダウンロードします。
- 希望のディレクトリーにファイルを展開します。
- 次のように
TATTLETALE_HOME/jboss-tattletale.propertiesファイルを変更します。ee6とas7をprofilesプロパティーに追加します。profiles=java5, java6, ee6, as7
scanとreportsプロパティーをアンコメントします。
4.1.5. Tattletale レポートの作成および確認
- 次のコマンドを実行して Tattletale レポートを作成します:
java -jarTATTLETALE_HOME/tattletale.jarAPPLICATION_ARCHIVEOUTPUT_DIRECTORYたとえば、java -jar tattletale-1.2.0.Beta2/tattletale.jar ~/applications/jboss-seam-booking.ear ~/output-results/となります。 - ブラウザーで
OUTPUT_DIRECTORY/index.htmlファイルを開き、「Reports」セクション下の「JBoss AS7」をクリックします。- 左側の列にはアプリケーションによって使用されるアーカイブが一覧表示されます。ARCHIVE_NAME リンクをクリックし、場所やマニュフェスト情報、含まれるクラスなどアーカイブの詳細を表示します。
- 右側の列にある
jboss-deployment-structure.xmlリンクは、左側の列に名前が表示されているアーカイブのモジュール依存関係を指定する方法を表示します。このリンクをクリックし、アーカイブのデプロイメント依存関係モジュール情報を定義する方法を確認します。
4.1.6. IronJacamar ツールを使用したデータソースおよびリソースアダプター設定の移行
以前のバージョンのアプリケーションサーバーでは、ファイル名が *-ds.xml で終わるファイルを使用してデータソースとリソースアダプターが設定されデプロイされました。IronJacamar 1.1 ディストリビューションには、これらの設定ファイルを JBoss EAP 6 が想定する形式に変換できるツールが含まれています。このツールは、以前のリリースよりソースの設定ファイルを解析し、XML 設定を作成してファイルを新しい形式で出力します。この XML を、JBoss EAP 6 のサーバー設定ファイルにある正しいサブシステム下にコピーおよび貼り付けできます。このツールは、できる限り以前の属性や要素を新しい形式に変換しますが、生成されたファイルに変更を追加する必要がある場合があります。
手順4.3 IronJacamar 移行ツールのインストールと実行
注記
4.1.7. IronJacamar 移行ツールのダウンロードとインストール
注記
- http://www.ironjacamar.org/download.html から IronJacamar の最新ディストリビューションをダウンロードします。
- 希望のディレクトリーにダウンロードしたファイルを展開します。
- IronJacamar ディストリビューションのコンバータースクリプトを探します。
- Linux スクリプトは、
IRONJACAMAR_HOME/doc/as/converter.shにあります。 - Windows バッチファイルは、
IRONJACAMAR_HOME/doc/as/converter.batにあります。
4.1.8. IronJacamar 移行ツールを使用したデータソース設定ファイルの変換
注記
手順4.4 データソース設定ファイルの変換
- コマンドラインを開き、
IRONJACAMAR_HOME/doc/as/ディレクトリーへ移動します。 - 以下のコマンドを入力して、コンバータースクリプトを実行します。
- Linux の場合:
./converter.sh -dsSOURCE_FILETARGET_FILE - Microsoft Windows の場合:
./converter.bat -dsSOURCE_FILETARGET_FILE
SOURCE_FILEは以前のリリースのデータソース -ds.xml ファイルです。TARGET_FILEに新しい設定が含まれます。たとえば、カレントディレクトリーにあるjboss-seam-booking-ds.xmlデータソース設定ファイルを変換するには、以下のように入力します。- Linux の場合:
./converter.sh -dsjboss-seam-booking-ds.xmlnew-datasource-config.xml - Microsoft Windows の場合:
./converter.bat -dsjboss-seam-booking-ds.xmlnew-datasource-config.xml
データソース変換のパラメーターは-dsになります。 - ターゲットファイルから
<datasource>要素をコピーし、<subsystem xmlns="urn:jboss:domain:datasources:1.1"><datasources>要素下のサーバー設定ファイルに貼り付けます。重要
サーバーの再起動後も変更が維持されるようにするには、サーバーを停止してからサーバー設定ファイルを編集する必要があります。- 管理対象ドメインで実行している場合は、XML を
EAP_HOME/domain/configuration/domain.xmlファイルにコピーします。 - スタンドアロンサーバーとして実行している場合は、XML を
EAP_HOME/standalone/configuration/standalone.xmlファイルにコピーします。
- 新しい設定ファイルに生成された XML を変更します。以下に、JBoss EAP 5.x に同梱された Seam 2.2 Booking サンプルの
jboss-seam-booking-ds.xmlデータソースの例を示します。<?xml version="1.0" encoding="UTF-8"?> <datasources> <local-tx-datasource> <jndi-name>bookingDatasource</jndi-name> <connection-url>jdbc:hsqldb:.</connection-url> <driver-class>org.hsqldb.jdbcDriver</driver-class> <user-name>sa</user-name> <password></password> </local-tx-datasource> </datasources>以下はコンバータースクリプトを実行して生成された設定ファイルになります。生成されたファイルには<driver-class>要素が含まれます。JBoss EAP 6 では、<driver>要素を使用してドライバークラスを定義する方法が推奨されます。<driver-class>要素がコメントアウトされ、対応する<driver>要素が追加された JBoss EAP 6 の設定ファイルにある XML は次のようになります。<subsystem xmlns="urn:jboss:domain:datasources:1.1"> <datasources> <datasource enabled="true" jndi-name="java:jboss/datasources/bookingDatasource" jta="true" pool-name="bookingDatasource" use-ccm="true" use-java-context="true"> <connection-url>jdbc:hsqldb:.</connection-url> <!-- Comment out the following driver-class element since it is not the preferred way to define this. <driver-class>org.hsqldb.jdbcDriver</driver-class> --> <!-- Specify the driver, which is defined later in the datasource --> <driver>h2<driver> <transaction-isolation>TRANSACTION_NONE</transaction-isolation> <pool> <prefill>false</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <user-name>sa</user-name> <password/> </security> <validation> <validate-on-match>false</validate-on-match> <background-validation>false</background-validation> <use-fast-fail>false</use-fast-fail> </validation> <timeout/> <statement> <track-statements>false</track-statements> </statement> </datasource> <drivers> <!-- The following driver element was not in the XML target file. It was created manually. --> <driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> </driver> </drivers> </datasources> </subsystem>
4.1.9. IronJacamar 移行ツールを使用したリソースアダプター設定ファイルの変換
注記
- コマンドラインを開き、
IRONJACAMAR_HOME/docs/as/ディレクトリーへ移動します。 - 以下のコマンドを入力して、コンバータースクリプトを実行します。
- Linux の場合:
./converter.sh -raSOURCE_FILETARGET_FILE - Microsoft Windows の場合:
./converter.bat -raSOURCE_FILETARGET_FILE
SOURCE_FILEは以前のリリースのリソースアダプター -ds.xml ファイルです。TARGET_FILEには、新しい設定が含まれます。たとえば、カレントディレクトリーにあるmttestadapter-ds.xmlリソースアダプター設定ファイルを変換するには、以下のように入力します。- Linux の場合:
./converter.sh -ramttestadapter-ds.xmlnew-adapter-config.xml - Microsoft Windows の場合:
./converter.bat -ramttestadapter-ds.xmlnew-adapter-config.xml
リソースアダプター変換のパラメーターは-raになります。 - ターゲットファイルから
<resource-adapters>要素全体をコピーし、<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">要素下のサーバー設定ファイルに貼り付けます。重要
サーバーの再起動後も変更が維持されるようにするには、サーバーを停止してからサーバー設定ファイルを編集する必要があります。- 管理対象ドメインで実行している場合は、XML を
EAP_HOME/domain/configuration/domain.xmlファイルにコピーします。 - スタンドアロンサーバーとして実行している場合は、XML を
EAP_HOME/standalone/configuration/standalone.xmlファイルにコピーします。
- 新しい設定ファイルに生成された XML を変更します。以下に、JBoss EAP 5.x TestSuite の
mttestadapter-ds.xmlリソースアダプター設定ファイルの例を示します。<?xml version="1.0" encoding="UTF-8"?> <!-- ==================================================================== --> <!-- ConnectionManager setup for jboss test adapter --> <!-- Build jmx-api (build/build.sh all) and view for config documentation --> <!-- ==================================================================== --> <connection-factories> <tx-connection-factory> <jndi-name>JBossTestCF</jndi-name> <xa-transaction/> <rar-name>jbosstestadapter.rar</rar-name> <connection-definition>javax.resource.cci.ConnectionFactory</connection-definition> <config-property name="IntegerProperty" type="java.lang.Integer">2</config-property> <config-property name="BooleanProperty" type="java.lang.Boolean">false</config-property> <config-property name="DoubleProperty" type="java.lang.Double">5.5</config-property> <config-property name="UrlProperty" type="java.net.URL">http://www.jboss.org</config-property> <config-property name="sleepInStart" type="long">200</config-property> <config-property name="sleepInStop" type="long">200</config-property> </tx-connection-factory> <tx-connection-factory> <jndi-name>JBossTestCF2</jndi-name> <xa-transaction/> <rar-name>jbosstestadapter.rar</rar-name> <connection-definition>javax.resource.cci.ConnectionFactory</connection-definition> <config-property name="IntegerProperty" type="java.lang.Integer">2</config-property> <config-property name="BooleanProperty" type="java.lang.Boolean">false</config-property> <config-property name="DoubleProperty" type="java.lang.Double">5.5</config-property> <config-property name="UrlProperty" type="java.net.URL">http://www.jboss.org</config-property> <config-property name="sleepInStart" type="long">200</config-property> <config-property name="sleepInStop" type="long">200</config-property> </tx-connection-factory> <tx-connection-factory> <jndi-name>JBossTestCFByTx</jndi-name> <xa-transaction/> <track-connection-by-tx>true</track-connection-by-tx> <rar-name>jbosstestadapter.rar</rar-name> <connection-definition>javax.resource.cci.ConnectionFactory</connection-definition> <config-property name="IntegerProperty" type="java.lang.Integer">2</config-property> <config-property name="BooleanProperty" type="java.lang.Boolean">false</config-property> <config-property name="DoubleProperty" type="java.lang.Double">5.5</config-property> <config-property name="UrlProperty" type="java.net.URL">http://www.jboss.org</config-property> <config-property name="sleepInStart" type="long">200</config-property> <config-property name="sleepInStop" type="long">200</config-property> </tx-connection-factory> </connection-factories>以下はコンバータースクリプトを実行して生成された設定ファイルになります。生成された XML ファイルのクラス名属性値 「FIXME_MCF_CLASS_NAME」を管理対象接続ファクトリー (この例では、「org.jboss.test.jca.adapter.TestManagedConnectionFactory」) の正しいクラス名に置き換えます。JBoss EAP 6 の設定ファイルにある<class-name>要素値が変更された XML は次のようになります。<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1"> <resource-adapters> <resource-adapter> <archive>jbosstestadapter.rar</archive> <transaction-support>XATransaction</transaction-support> <connection-definitions> <!-- Replace the "FIXME_MCF_CLASS_NAME" class-name value with the correct class name <connection-definition class-name="FIXME_MCF_CLASS_NAME" enabled="true" jndi-name="java:jboss/JBossTestCF" pool-name="JBossTestCF" use-ccm="true" use-java-context="true"> --> <connection-definition class-name="org.jboss.test.jca.adapter.TestManagedConnectionFactory" enabled="true" jndi-name="java:jboss/JBossTestCF" pool-name="JBossTestCF" use-ccm="true" use-java-context="true"> <config-property name="IntegerProperty">2</config-property> <config-property name="sleepInStart">200</config-property> <config-property name="sleepInStop">200</config-property> <config-property name="BooleanProperty">false</config-property> <config-property name="UrlProperty">http://www.jboss.org</config-property> <config-property name="DoubleProperty">5.5</config-property> <pool> <prefill>false</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <application/> </security> <timeout/> <validation> <background-validation>false</background-validation> <use-fast-fail>false</use-fast-fail> </validation> </connection-definition> </connection-definitions> </resource-adapter> <resource-adapter> <archive>jbosstestadapter.rar</archive> <transaction-support>XATransaction</transaction-support> <connection-definitions> <!-- Replace the "FIXME_MCF_CLASS_NAME" class-name value with the correct class name <connection-definition class-name="FIXME_MCF_CLASS_NAME" enabled="true" jndi-name="java:jboss/JBossTestCF2" pool-name="JBossTestCF2" use-ccm="true" use-java-context="true"> --> <connection-definition class-name="org.jboss.test.jca.adapter.TestManagedConnectionFactory" enabled="true" jndi-name="java:jboss/JBossTestCF2" pool-name="JBossTestCF2" use-ccm="true" use-java-context="true"> <config-property name="IntegerProperty">2</config-property> <config-property name="sleepInStart">200</config-property> <config-property name="sleepInStop">200</config-property> <config-property name="BooleanProperty">false</config-property> <config-property name="UrlProperty">http://www.jboss.org</config-property> <config-property name="DoubleProperty">5.5</config-property> <pool> <prefill>false</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <application/> </security> <timeout/> <validation> <background-validation>false</background-validation> <use-fast-fail>false</use-fast-fail> </validation> </connection-definition> </connection-definitions> </resource-adapter> <resource-adapter> <archive>jbosstestadapter.rar</archive> <transaction-support>XATransaction</transaction-support> <connection-definitions> <!-- Replace the "FIXME_MCF_CLASS_NAME" class-name value with the correct class name <connection-definition class-name="FIXME_MCF_CLASS_NAME" enabled="true" jndi-name="java:jboss/JBossTestCFByTx" pool-name="JBossTestCFByTx" use-ccm="true" use-java-context="true"> --> <connection-definition class-name="org.jboss.test.jca.adapter.TestManagedConnectionFactory" enabled="true" jndi-name="java:jboss/JBossTestCFByTx" pool-name="JBossTestCFByTx" use-ccm="true" use-java-context="true"> <config-property name="IntegerProperty">2</config-property> <config-property name="sleepInStart">200</config-property> <config-property name="sleepInStop">200</config-property> <config-property name="BooleanProperty">false</config-property> <config-property name="UrlProperty">http://www.jboss.org</config-property> <config-property name="DoubleProperty">5.5</config-property> <pool> <prefill>false</prefill> <use-strict-min>false</use-strict-min> <flush-strategy>FailingConnectionOnly</flush-strategy> </pool> <security> <application/> </security> <timeout/> <validation> <background-validation>false</background-validation> <use-fast-fail>false</use-fast-fail> </validation> </connection-definition> </connection-definitions> </resource-adapter> </resource-adapters> </subsystem>

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.