第4章 ツールとヒント

4.1. 移行に役立つリソース

4.1.1. 移行に役立つリソース

アプリケーションを JBoss Enterprise Application Platform 6 に移行する時に便利なリソースの一覧は次の通りです。
ツール
設定変更の一部を自動化するのに役立つツールが複数あります。詳細は 「移行に便利なツールについて理解する」 を参照してください。
デバッグのヒント
アプリケーションの移行時に発生する問題やエラーの最も一般的な原因と解決法については 「移行の問題のデバッグと解決」を参照してください。
移行の例
JBoss Enterprise Application Platform 6 へ移行されたアプリケーションの例は 「アプリケーション例の移行の確認」を参照してください。

4.1.2. 移行に便利なツールについて理解する

概要

移行に便利なツールは複数あります。これらのツールとその説明の一覧は次の通りです。

Tattletale
モジュラークラスローディングの変更に伴い、アプリケーション依存関係を検索し、修正する必要があります。Tattletale は依存するモジュールの名前を特定し、アプリケーションに対して設定 XML を生成する時に便利なツールです。
IronJacamar 移行ツール
JBoss Enterprise Application Platform 6 ではデータソースとリソースアダプターは個別のファイルに設定されていません。データソースとリソースアダプターはサーバー設定ファイルに定義され、新しいスキーマを使用します。IronJacamar 移行ツールは以前の設定を JBoss Enterprise Application Platform 6 が想定する形式に変換する時に便利です。

4.1.3. Tattletale を用いたアプリケーション依存関係の検索

概要

JBoss Enterprise Application Platform 6 のモジュラークラスローディングの変更に伴い、アプリケーションを移行する時に JBoss ログに ClassNotFoundException または ClassCastException トレースが記録されることがあります。このエラーを解決するには、例外が指定するクラスが含まれる JAR を探す必要があります。

Tattletale はアプリケーションを再帰的にスキャンし、その内容の詳細レポートを提供する優れたサードパーティーツールです。Tattletale 1.2.0.Bata2 やそれ移行のバージョンには JBoss Enterprise Application Platform 6 で使用される新しい JBoss Modules のクラスローディングに役立つ追加のサポートが含まれています。Tattletale の 「JBoss EAP 6」レポートを使用して、自動的に依存するモジュール名を特定および生成し、アプリケーションの jboss-deployment-structure.xml ファイルが含まれるようにすることが可能です。

手順4.1 アプリケーション依存関係を検索するため Tattletale をインストールし実行する

注記

Tattletale は JBoss Enterprise Application Platform 6 の一部としてはサポートされないサードパーティーのツールです。Tattletale のインストール方法や使用方法に関する最新のドキュメントは、Tattletale の Web サイト http://www.jboss.org/tattletale をご覧ください。

4.1.4. Tattletale のダウンロードとインストール

手順4.2

  1. http://sourceforge.net/projects/jboss/files/JBoss%20Tattletale より Tattletale バージョン 1.2.0.Beta2 またはそれ以降のバージョンをダウンロードします。
  2. 希望のディレクトリにファイルを展開します。
  3. 次のように TATTLETALE_HOME/jboss-tattletale.properties ファイルを変更します。
    1. ee6as7profiles プロパティーに追加します。
      profiles=java5, java6, ee6, as7
    2. scanreports プロパティーをアンコメントします。

注記

Tattletale は JBoss Enterprise Application Platform 6 の一部としてはサポートされないサードパーティーのツールです。Tattletale のインストール方法や使用方法に関する最新のドキュメントは、Tattletale の Web サイト http://www.jboss.org/tattletale をご覧ください。

4.1.5. Tattletale レポートの作成および確認

手順4.3

  1. 次のコマンドを実行して Tattletale レポートを作成します。 java -jar TATTLETALE_HOME/tattletale.jarAPPLICATION_ARCHIVEOUTPUT_DIRECTORY
    For example: java -jar tattletale-1.2.0.Beta2/tattletale.jar applications/jboss-seam-booking.ear output-results/
  2. ブラウザーで OUTPUT_DIRECTORY/index.html ファイルを開き、「Reports」セクション下の「JBoss EAP 6」をクリックします。
    1. 左側の列にはアプリケーションによって使用されるアーカイブが一覧表示されます。ARCHIVE_NAME リンクをクリックし、場所やマニュフェスト情報、含まれるクラスなどアーカイブの詳細を表示します。
    2. 右側の列にある jboss-deployment-structure.xml リンクは、左側の列に名前が表示されているアーカイブのモジュール依存関係を指定する方法を表示します。このリンクをクリックし、アーカイブのデプロイメント依存関係モジュール情報を定義する方法を確認します。

注記

Tattletale は EAP 6 の一部としてはサポートされないサードパーティーのツールです。Tattletale のインストール方法や使用方法に関する最新のドキュメントは、Tattletale の Web サイト http://www.jboss.org/tattletale をご覧ください。

4.1.6. IronJacamar ツールを使用してデータソースとリソースアダプターの設定を移行する

概要

以前のバージョンのアプリケーションサーバーでは、ファイル名が *-ds.xml で終わるファイルを使用してデータソースとリソースアダプターが設定されデプロイされました。IronJacamar 1.1 ディストリビューションには、これらの設定ファイルを JBoss Enterprise Application Platform 6 が想定する形式に変換できるツールが含まれています。このツールは以前のリリースよりソースの設定ファイルを解析し、XML 設定を作成してファイルを新しい形式で出力します。この XML は JBoss Enterprise Application Platform 6 のサーバー設定ファイルにある正しいサブシステム下にコピーしたり貼り付けすることができます。このツールは最大限努力して以前の属性や要素を新しい形式に変換しますが、生成されたファイルに変更を追加する必要がある場合があります。

注記

IronJacamar 移行ツールは JBoss Enterprise Application Platform 6 の一部としてはサポートされないサードパーティーのツールです。IronJacamar に関する情報は http://www.jboss.org/ironjacamar を参照してください。このツールのインストール方法や使用方法についての最新のドキュメントは http://docs.jboss.org/ironjacamar/userguide/1.1/en-US/html/tools.html#tools_migration を参照してください。

4.1.7. IronJacamar 移行ツールのダウンロードとインストール

注記

移行ツールは IronJacamar 1.1 およびそれ以降のバージョンでのみ使用可能です。

手順4.5

  1. IronJacamar 1.1 またはそれ以降のディストリビューションを http://www.jboss.org/ironjacamar/downloads/ よりダウンロードします。
  2. 希望のディレクトリにダウンロードしたファイルを展開します。
  3. IronJacamar ディストリビューションのコンバータースクリプト探します。
    • Linux のスクリプトは IRONJACAMAR_HOME/doc/as/converter.sh にあります。
    • Windows のバッチファイルは IRONJACAMAR_HOME/doc/as/converter.bat にあります。

注記

IronJacamar 移行ツールは JBoss Enterprise Application Platform 6 の一部としてはサポートされないサードパーティーのツールです。IronJacamar に関する情報は http://www.jboss.org/ironjacamar を参照してください。このツールのインストール方法や使用方法についての最新のドキュメントは http://docs.jboss.org/ironjacamar/userguide/1.1/en-US/html/tools.html#tools_migration を参照してください。

4.1.8. IronJacamar 移行ツールを使用したデータソース設定ファイルの変換

手順4.6

  1. コマンドラインを開き、IRONJACAMAR_HOME/docs/as/ ディレクトリへ移動します。
  2. 次のコマンドを入力してコンバータースクリプトを実行します。
    • Linux の場合: ./converter.sh -ds SOURCE_FILETARGET_FILE
    • Microsoft Windows の場合: ./converter.bat -ds SOURCE_FILETARGET_FILE
    SOURCE_FILE は以前のリリースのデータソース -ds.xml ファイルです。TARGET_FILE に新しい設定が含まれます。
    例えば、カレントディレクトリにある jboss-seam-booking-ds.xml データソース設定ファイルを変換する場合は以下を入力します。
    • Linux の場合: ./converter.sh -ds jboss-seam-booking-ds.xml new-datasource-config.xml
    • Microsoft Windows の場合: ./converter.bat -ds jboss-seam-booking-ds.xml new-datasource-config.xml
    データソース変換のパラメーターは -ds になります。
  3. 目的のファイルより <datasource> 要素をコピーし、<subsystem xmlns="urn:jboss:domain:datasources:1.0"><datasources> 要素下のサーバー設定ファイルに貼り付けます。
    • 管理ドメインで実行されている場合は、XML を EAP_HOME/domain/configuration/domain.xml ファイルへコピーします。
    • スタンドアロンサーバーとして実行されている場合は、XML を EAP_HOME/standalone/configuration/standalone.xml ファイルへコピーします。
  4. 新しい設定ファイルに生成された XML の変更
    JBoss Enterprise Application Platform 5.x に同梱される Seam 2.2 の Booking 例に対する jboss-seam-booking-ds.xml データソース設定ファイルの例は次の通りです。
    <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 Enterprise Application Platform 6 では <driver> を使用してドライバークラスを定義する方法が推奨されます。 <driver-class> 要素がコメントアウトされ、対応する <driver> 要素が追加された JBoss Enterprise Application Platform 6 の設定ファイルにある XML は次のようになります。
    <subsystem xmlns="urn:jboss:domain:datasources:1.0">
      <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>     -->
          <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>
    

注記

IronJacamar 移行ツールは JBoss Enterprise Application Platform 6 の一部としてはサポートされないサードパーティーのツールです。IronJacamar に関する情報は http://www.jboss.org/ironjacamar を参照してください。このツールのインストール方法や使用方法についての最新のドキュメントは http://docs.jboss.org/ironjacamar/userguide/1.1/en-US/html/tools.html#tools_migration を参照してください。

4.1.9. IronJacamar 移行ツールを使用したリソースアダプター設定ファイルの変換

手順4.7

  1. コマンドラインを開き、IRONJACAMAR_HOME/docs/as/ ディレクトリへ移動します。
  2. 次のコマンドを入力してコンバータースクリプトを実行します。
    • Linux の場合: ./converter.sh -ra SOURCE_FILETARGET_FILE
    • Microsoft Windows の場合: ./converter.bat -ra SOURCE_FILETARGET_FILE
    SOURCE_FILE は以前のリリースのリソースアダプター -ds.xml ファイルです。\TARGET_FILE に新しい設定が含まれます。
    例えば、カレントディレクトリにある mttestadapter-ds.xml リソースアダプター設定ファイルを変換する場合は以下を入力します。
    • Linux の場合: ./converter.sh -ra mttestadapter-ds.xml new-adapter-config.xml
    • Microsoft Windows の場合: ./converter.bat -ra mttestadapter-ds.xml new-adapter-config.xml
    リソースアダプター変換のパラメーターは -ra になります。
  3. 目的のファイルより <resource-adapters> 要素全体をコピーし、 <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0"> 要素下のサーバー設定ファイルに貼り付けます。
    • 管理ドメインで実行されている場合は、XML を EAP_HOME/domain/configuration/domain.xml ファイルへコピーします。
    • スタンドアロンサーバーとして実行されている場合は、XML を EAP_HOME/standalone/configuration/standalone.xml ファイルへコピーします。
  4. 新しい設定ファイルに生成された XML の変更
    以下は JBoss Enterprise Application Platform 5.x TestSuite からの mttestadapter-ds.xml リソースアダプター設定ファイルの例になります。
      <!-- ==================================================================== -->
      <!-- 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 にある class-name 属性値の "FIXME_MCF_CLASS_NAME" を、管理された接続ファクトリーの正しいクラス名に置き換えます。この例では "org.jboss.test.jca.adapter.TestManagedConnectionFactory" に置き換えます。<class-name> 要素値へ変更が加えられた JBoss Enterprise Application Platform 6 設定ファイルの XML は次のようになります。
    <subsystem xmlns="urn:jboss:domain:resource-adapters:1.0">
      <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>
    

注記

IronJacamar 移行ツールは JBoss Enterprise Application Platform 6 の一部としてはサポートされないサードパーティーのツールです。IronJacamar に関する情報は http://www.jboss.org/ironjacamar を参照してください。このツールのインストール方法や使用方法についての最新のドキュメントは http://docs.jboss.org/ironjacamar/userguide/1.1/en-US/html/tools.html#tools_migration を参照してください。