第2章 移行の準備

2.1. 準備の概要

JBoss EAP 7 では、JBoss EAP 6 のアプリケーションに後方互換性を提供する努力をしていますが、JBoss EAP 7 で非推奨なった機能や削除された機能がアプリケーションによって使用される場合は、アプリケーションコードの変更が必要になることがあります。

さらに、本リリースには JBoss EAP 7 アプリケーションのデプロイメントに影響する可能性がある複数の変更が含まれています。移行について調査し、計画を立ててからアプリケーションを移行することが推奨されます。

機能の変更、開発の資料、および移行に便利なツールについて理解したら、アプリケーションとサーバー設定を評価し、JBoss EAP 7 で実行するために必要な変更について判断します。

2.2. Java EE 7 機能の確認

Java EE 7 には、プライベートおよびパブリッククラウドでの機能が充実したアプリケーションの開発や実行を容易にする多くの改良点が含まれています。JBoss EE 7 は、HTML5、WebSocket、JSON、Batch、および Cocurrency Utilities などの新機能や最新の標準が導入されています。アップデートには JPA 2.1、JAX-RS 2.0、Servlet 3.1、Expression Language 3.0、JMS 2.0、JSF 2.2、EJB 3.2、CDI 1.2、および Bean Validation 1.1 が含まれます。

チュートリアルなどの Java EE 7 に関する詳細は、オラクルの Web サイトにある Java EE at a Glance を参照してください。

2.3. JBoss EAP 7 の新機能

JBoss EAP 7 には、以前のリリースから大幅に改善されたアップグレードや改良点が含まれています。

Java EE 7
JBoss EAP 7 は Java EE 7 の認定実装で、 Web Profile と Full Profile の両方に準拠しています。また、CDI 1.2 および Web Sockets 1.1 の最新のイテレーションもサポートします。
Undertow
Undertow は軽量で柔軟性のあるパフォーマンスに優れた新しい Web サーバーです。JBoss Web は Undertow に置き換えられました。Undertow は Java で書かれ、スループットとスケーラビリティーを最大にするよう設計されています。新しい HTTP/2 標準などの最新の Web 技術をサポートします。
Apache ActiveMQ Artemis
Apache ActiveMQ Artemis は JBoss EAP 7 の新しいビルトインメッセージングプロバイダーです。この Apache サブプロジェクトは HornetQ から寄贈されたコードをベースにし、証明された非ブロッキングアーキテクチャーを基に優れたパフォーマンスを実現します。
IronJacamar 1.2
最新の Iron Jacamar は、安定性が高く、機能が充実したサポートを JCA および DataSources に提供します。
JBossWS 5
JBossWS 5 はこれまでのバージョンから大きく飛躍し、新機能や改良されたパフォーマンスを JBoss EAP 7 Web Services に提供します。
RESTEasy 3
JBoss EAP 7 には最新の RESTEasy が含まれています。JSON Web Encryption、Jackson、YAML、JSON-P、Jettison などの便利な拡張を提供し、標準の Java EE REST API (JAX-RS 2.0) を越えた機能性を実現します。
OpenJDK ORB
JBoss EAP では、JacORB IIOP 実装が OpenJDK ORB のダウンストリームブランチに置き換えられ、JVM ORB と Java EE RI との相互運用性が向上されました。
機能が充実したクラスタリング
JBoss EAP 7 ではクラスタリングのサポートが大幅にリファクタリングされ、アプリケーションのアクセスを可能にするパブリック API が複数含まれています。
ポートの削減
JBoss EAP 7 では HTTP のアップグレードを利用し、ほぼすべてのプロトコルが管理ポート (9990) とアプリケーションポート (8080) の 2 つの HTTP ポート上で多重化されます。
ロギングの強化
管理 API が、サーバー上で利用可能なログファイルをリストおよび表示する機能をサポートするようになりました。また、デフォルトのパターンフォーマッター以外のカスタムフォーマッターを定義する機能もサポートするようになりました。さらに、デプロイメントのロギング設定も大幅に向上されました。

新機能の完全一覧については、JBoss EAP 7 リリースノート新機能および改良された機能を参照してください。

2.4. 非推奨および未サポート機能リストの確認

アプリケーションを移行する前に、以前のリリースの JBoss EAP では使用可能で、本リリースで非推奨またはサポート対象外になった機能があることに注意する必要があります。

メンテナンスコストの高さ、コミュニティーでの関心の低さ、および高性能な代替ソリューションの存在などが理由で、一部の技術がサポート対象外になりました。サポートされない機能の一部を以下に示します。

EJB エンティティー Bean
EJB エンティティー Bean はサポート対象外になりました。アプリケーションが EJB エンティティー Bean を使用する場合は、パフォーマンスや柔軟性が高い API を提供する JPA を使用するようコードを移行してください。
JAX-RPC
JAX-WS はより正確で完全なソリューションを提供するため、JAX-RPC 用に書かれたコードは JAX-WS を使用するよう移行する必要があります。
JSR-88
すべての Java EE プラットフォーム製品でアプリケーションを設定およびデプロイするために複数のプロバイダーからツールを有効化するコントラクトを定義する、Java EE Application Deployment API 仕様 (JSR-88) は広く採用されませんでした。管理コンソール、管理 CLI、デプロイメントスキャナー、Maven など、アプリケーションのデプロイメントでは JBoss EAP がサポートする他のオプションを使用する必要があります。
汎用 JMS リソースアダプター
汎用 JMS リソースアダプターを設定して JMS プロバイダーに接続する機能は、JBoss EAP 7 ではサポート対象外になりました。

非推奨の機能およびサポートされない機能の完全リストは、JBoss EAP 7 リリースノートサポートされない機能および非推奨の機能を参照してください。

2.5. JBoss EAP 7 スタートガイドの確認

JBoss EAP のスタートガイドを必ず確認してください。このガイドには、以下の重要な情報が含まれています。

  • JBoss EAP のダウンロードおよびインストール方法
  • Red Hat JBoss Developer Studio のダウンロードおよびインストール方法
  • 開発環境に応じた Maven の設定方法、プロジェクト依存関係の管理方法、および JBoss EAP の Bill of Material (BOM) アーティファクトを使用するようプロジェクトを設定する方法。
  • 製品に同梱されたクイックスタートサンプルアプリケーションのダウンロードおよび実行方法

2.6. 移行の分析および計画

アプリケーションとサーバー設定はそれぞれ異なるため、移行を始める前に既存のアプリケーションと、サーバープラットフォームのコンポーネントおよびアーキテクチャーを十分に理解する必要があります。移行計画にはテストの詳細なロードマップが含まれる必要があり、以下の情報を考慮して実稼働に展開する必要があります。

移行責任者の特定
ステークホルダー、プロジェクトマネージャー、開発者、管理者、およびその他の移行責任者を特定します。
アプリケーションサーバープラットフォーム設定とハードウェアの確認

既存のアプリケーションサーバーとプラットフォーム設定を検証し、JBoss EAP 7 の今後の変更がどのように影響するかを判断します。以下の項目が含まれる必要があります。

  • オペレーティングシステムおよびバージョン
  • アプリケーションによって使用されるデータベース
  • Web サーバー
  • セキュリティーアーキテクチャー
  • プロセッサーの数およびタイプ
  • メモリーの容量
  • 物理ディスクストレージの容量
  • データベースまたはメッセージングデータの移行
  • 移行の影響を受ける可能性があるその他のコンポーネント
現在の本番環境の確認

移行プロセスのテストおよびステージングでは、できるだけ本番環境に近い状態を再現するように計画を立てる必要があります。

  • クラスタリング設定を考慮します。クラスターの移行方法に関する詳細は、JBoss EAP Patching and Upgrading GuideUpgrading a Cluster を参照してください。
  • 現在、大型の管理対象ドメインを実行している場合は、段階的な移行方法を考慮してください。
  • データベースまたはメッセージングデータの移行が必要であるかどうかを判断します。
既存アプリケーションの検証および理解

既存の JBoss EAP 6 アプリケーションを完全に検証します。以下を含むアーキテクチャー、関数、機能、およびコンポーネントについて完全に理解してください。

  • JVM バージョン
  • 他の Red Hat アプリケーションサーバーミドルウェアコンポーネントとの統合
  • プロプライエタリーサードパーティーソフトウェアとの統合
  • 代替機能が必要となる非推奨機能の使用
  • デプロイメント記述子、JNDI、永続性、JDBC 設定およびプーリング、JMS トピックおよびキュー、ロギングを含むアプリケーション設定

JBoss EAP 7 への移行中に変更が必要な互換性のないコード設定を特定

詳細テストプランの作成
  • 計画には、回帰テストと受け入れ基準の要件が含まれる必要があります。
  • パフォーマンステストが含まれる必要もあります。
  • 本番環境へロールアウトする前に移行をテストするため、できるだけ本番環境に近くなるようステージング環境を設定します。
  • 必ず、バックアップおよびバックアウト計画を作成してください。
移行プロセスに使用できるリソースの確認
  • 開発チームのスキルを評価し、トレーニングまたは追加のコンサルティングを計画します。
  • 移行プロセス中は、ステージングやテストで追加のハードウェアやその他のリソースが必要になることにも注意してください。
  • 正式なトレーニングが必要であるかどうかを判断します。必要な場合はスケジュールに追加します。
計画の遂行
必要なリソースを確保し、移行計画を実行します。
重要

必ずバックアップコピーを作成してからアプリケーションに変更を加えるようにしてください。

2.7. 重要データのバックアップおよびサーバー状態の確認

アプリケーションを移行する前に、以下の問題が発生する可能性があることを認識しておく必要があります。

  • 移行によって一時フォルダーが削除される可能性があります。移行前に data/content/ ディレクトリーに保存されたすべてのデプロイメントをバックアップし、移行後に復元する必要があります。この作業を怠ると、削除された内容が原因でサーバーが起動しないことがあります。
  • 移行前に、開かれたトランザクションをすべて処理し、 data/tx-object-store/ トランザクションディレクトリーを削除します。
  • data/timer-service-data にある永続タイマーデータをチェックし、互換性があるかどうかを判断する必要があります。移行前に、このディレクトリーにある deployment-* ファイルをチェックし、使用されているタイマーを確認します。

移行を開始する前に、現在のサーバー設定とアプリケーションもバックアップするようにしてください。

2.8. RPM インストールの移行

重要

単一の Red Hat Enterprise Linux サーバーでサポートされるのは、RPM でインストールされた JBoss EAP のインスタンス 1 つまでです。そのため、JBoss EAP 7 に移行の際は、使用中の JBoss EAP インストールを新規マシンに移行することが推奨されます。

JBoss EAP RPM インストールを JBoss EAP 6 から JBoss EAP 7 に移行する際は、JBoss EAP 7 のインストール先となるマシンに既存の JBoss EAP RPM インストールがないことを確認してください。

RPM を使用して JBoss EAP 7 をインストールする場合は、JBoss EAP のインストールガイドを参照してください。

本ガイドの移行に関するアドバイスは JBoss EAP の RPM インストールの移行にも適用されますが、ZIP やインストーラーによるインストールの場合と比べると (JBoss EAP の開始方法などの) いくつかのステップについては修正して、RPM インストールに適合させる必要がある場合があります。

2.9. サービスとして実行するよう JBoss EAP を移行

JBoss EAP 6 をサービスとして実行する場合は、必ず JBoss EAP インストールガイドサービスとして実行するよう JBoss EAP を設定を読んで、JBoss EAP 7 で更新された設定手順を確認してください。