8.7. 複数の JBoss EAP バージョンの管理

最新バージョンの JBoss EAP は、以前のバージョンの JBoss EAP を実行するサーバーおよびホストを管理できます。管理する JBoss EAP のバージョンに該当する項を参照してください。

8.7.1. JBoss EAP 6 インスタンスを管理するよう JBoss EAP 7.x ドメインコントローラーを設定

JBoss EAP 7.1 ドメインコントローラーは、実行している JBoss EAP 6 のバージョンが JBoss EAP 6.2 以上のホストおよびサーバーを管理できます。

注記

JBoss EAP 7.0 ドメインコントローラーが異なるパッチリリースの JBoss EAP 7.0 ホストを管理する場合は、設定を変更する必要はありません。しかし、JBoss EAP 7.0 ドメインコントローラーは、管理するホストコントローラーと同じパッチリリースバージョンまたはそれ以降のバージョンを実行している必要があります。

JBoss EAP 7 の管理対象ドメインで JBoss EAP 6 インスタンスを正常に管理するには、以下の作業を行います。

これらの作業が終了したら、管理 CLI を使用して JBoss EAP 7 ドメインコントローラーから JBoss EAP 6 サーバーおよび設定を管理できます。JBoss EAP 6 ホストは、バッチ処理などの JBoss EAP 7 の新機能を利用できないことに注意してください。

警告

管理コンソールは、最新バージョンの JBoss EAP に対して最適化されているため、管理コンソールを使用して JBoss EAP 6 のホスト、サーバー、およびプロファイルを更新しないでください。JBoss EAP 7 の管理対象ドメインから JBoss EAP 6 の設定を管理する場合は、代わりに 管理 CLI を使用してください。

8.7.1.1. Boss EAP 6 の設定を JBoss EAP 7 ドメインコントローラーに追加

ドメインコントローラーが JBoss EAP 6 サーバーを管理できるようにするには、JBoss EAP 7 のドメイン設定に JBoss EAP 6 の設定詳細を提供する必要があります。これには、JBoss EAP 6 のプロファイル、ソケットバインディンググループ、およびサーバーグループを JBoss EAP 7 の domain.xml 設定ファイルにコピーします。

JBoss EAP 7 の設定と名前が競合する場合は、リソースの名前を変更する必要があります。さらに、正しく動作するようにするため、追加の調整を行う必要もあります。

以下の手順では、JBoss EAP 6 の default プロファイル、standard-sockets ソケットバインディンググループ、および main-server-group サーバーグループが使用されます。

  1. JBoss EAP 7 の domain.xml 設定ファイルを編集します。このファイルをバックアップしてから編集することが推奨されます。
  2. 該当する JBoss EAP 6 のプロファイルを JBoss EAP 7 の domain.xml ファイルにコピーします。

    この手順では、JBoss EAP 6 の default プロファイルをコピーし、名前を eap6-default に変更したことを仮定します。

    JBoss EAP 7 の domain.xml

    <profiles>
      ...
      <profile name="eap6-default">
        ...
      </profile>
    </profiles>

  3. このプロファイルによって使用される必要なエクステンションを追加します。

    JBoss EAP 6 のプロファイルが JBoss EAP 7 には存在しないサブシステムを使用する場合は、JBoss EAP ドメイン設定に適切なエクステンションを追加する必要があります。

    JBoss EAP 7 の domain.xml

    <extensions>
      ...
      <extension module="org.jboss.as.configadmin"/>
      <extension module="org.jboss.as.threads"/>
      <extension module="org.jboss.as.web"/>
    <extensions>

  4. 該当する JBoss EAP 6 のソケットバインディンググループを JBoss EAP 7 の domain.xml ファイルにコピーします。

    この手順では、JBoss EAP 6 の standard-sockets ソケットバインディンググループをコピーし、名前を eap6-standard-sockets に変更したことを仮定します。

    JBoss EAP 7 の domain.xml

    <socket-binding-groups>
      ...
      <socket-binding-group name="eap6-standard-sockets" default-interface="public">
        ...
      </socket-binding-group>
    </socket-binding-groups>

  5. 該当する JBoss EAP 6 のサーバーグループを JBoss EAP 7 の domain.xml ファイルにコピーします。

    この手順では、JBoss EAP 6 の main-server-group サーバーグループをコピーし、名前を eap6-main-server-group に変更したことを仮定します。また、このサーバーグループを更新して、JBoss EAP 6 のプロファイル eap6-default と JBoss EAP 6 のソケットバインディンググループ eap6-standard-sockets を使用するようにする必要があります。

    JBoss EAP 7 の domain.xml

    <server-groups>
      ...
      <server-group name="eap6-main-server-group" profile="eap6-default">
        ...
        <socket-binding-group ref="eap6-standard-sockets"/>
      </server-group>
    </server-groups>

8.7.1.2. JBoss EAP 6 プロファイルの動作の更新

JBoss EAP のバージョンや必要な動作に応じて、JBoss EAP 6 インスタンスによって使用されるプロファイルを追加更新する必要があります。既存の JBoss EAP 6 インスタンスが使用するサブシステムや設定に応じて、追加の変更が必要になる場合があります。

JBoss EAP 7 ドメインコントローラーを起動して管理 CLI を起動し、以下の更新を実行します。これらの例では、JBoss EAP 6 のプロファイルが eap6-default であることを仮定します。

  • bean-validation サブシステムを削除します。

    JBoss EAP 7 では、bean バリデーション機能が ee サブシステムから独自の bean-validation サブシステムに移されました。JBoss EAP 7 ドメインコントローラーがレガシーの ee サブシステムを発見した場合、新しい bean-validation サブシステムを追加します。しかし、JBoss EAP 6 のホストはこのサブシステムを認識しないため、削除する必要があります。

    JBoss EAP 7 のドメインコントローラー CLI

    /profile=eap6-default/subsystem=bean-validation:remove

  • CDI 1.0 の挙動を設定します。

    これは、JBoss EAP 6 サーバーに JBoss EAP 7 で使用されるより新しいバージョンの CDI の挙動ではなく、CDI 1.0 の挙動を適用する場合のみ必要です。CDI 1.0 の挙動を提供する場合は、weld サブシステムに以下の更新を追加します。

    JBoss EAP 7 のドメインコントローラー CLI

    /profile=eap6-default/subsystem=weld:write-attribute(name=require-bean-descriptor,value=true)
    
    /profile=eap6-default/subsystem=weld:write-attribute(name=non-portable-mode,value=true)

  • JBoss EAP 6.2 のデータソース統計を有効にします。

    これは、プロファイルが JBoss EAP 6.2 サーバーによって使用される場合のみ必要です。JBoss EAP 6.3 には statistics-enabled 属性が導入され、デフォルトでは統計を収集しない false に設定されます。しかし、JBoss EAP 6.2 では統計を収集しました。このプロファイルが JBoss EAP 6.2 のホストとそれ以降のバージョンのJBoss EAP を実行するホストによって使用される場合、ホストによって動作が異なることになり、これは許可されません。そのため、JBoss EAP 6.2 ホスト向けのプロファイルは、データソースに以下の変更を追加する必要があります。

    JBoss EAP 7 のドメインコントローラー CLI

    /profile=eap6-default/subsystem=datasources/data-source=ExampleDS:write-attribute(name=statistics-enabled,value=true)

8.7.1.3. JBoss EAP 6 サーバーのサーバーグループの設定

サーバーグループの名前を変更した場合は、JBoss EAP 6 のホスト設定を更新し、JBoss EAP 7 の設定に指定された新しいサーバーグループを使用する必要があります。この例では、JBoss EAP 7 の domain.xml に指定された eap6-main-server-group サーバーグループを使用します。

JBoss EAP 6 の host-slave.xml

<servers>
    <server name="server-one" group="eap6-main-server-group"/>
    <server name="server-two" group="eap6-main-server-group">
        <socket-bindings port-offset="150"/>
    </server>
</servers>

注記

ホストは、実行している JBoss EAP よりも新しいバージョンで導入された機能や設定を使用できません。

8.7.1.4. JBoss EAP 6 インスタンスが JBoss EAP 7 の更新を取得しないようにする

管理対象ドメインのドメインコントローラーは、設定の更新をホストコントローラーに転送します。host-exclude 設定を使用して、特定のバージョンが認識できないようにするリソースを指定する必要があります。事前設定された host-exclude のオプションは EAP62EAP63EAP64、および EAP64z です。 ご使用の JBoss EAP 6 のバージョンに該当するものを選択します。

host-exclude 設定の active-server-groups 属性は、特定のバージョンによって使用されるサーバーグループのリストを指定します。指定のバージョンのホストは、指定されたサーバーグループとそれらに関連するプロファイル、ソケットバインディンググループ、およびデプロイメントリソースを利用できますが、それ以外は認識しません。

以下の例では、JBoss EAP のバージョンが 6.4.z であることを仮定し、JBoss EAP 6 のサーバーグループ eap6-main-server-group をアクティブなサーバーグループとして追加します。

JBoss EAP 7 のドメインコントローラー CLI

/host-exclude=EAP64z:write-attribute(name=active-server-groups,value=[eap6-main-server-group])

必要な場合は、active-socket-binding-groups 属性を使用して、サーバーによって使用される追加のソケットバインディンググループを指定します。これは、active-server-groups に指定されたサーバーグループと関連していないソケットバインディンググループのみに必要です。