Sun Java System Application Server Enterprise Edition 8.2 アップグレードと移行

Application Server 6.x からのエンタープライズ EJB モジュールの移行

Application Server 6.x は EJB 1.1 をサポートし、Application Server は EJB 2.0 をサポートします。このため、どちらも次のものをサポートできます。

ただし、EJB 2.0 には MDB と呼ばれる新しいタイプのエンタープライズ Bean が導入されています。

J2EE 1.4 仕様によれば、EJB の各種コンポーネントは次のような構造を持つ JAR ファイルにグループ化する必要があります。

Application Server 6.x では、このアーカイブ構造が使用されます。ただし、EJB 1.1 仕様では、各 EJB コンテナベンダーに対して、彼らが次のような特定のものを適当と見なした場合には実装させる余地を残しています。

EJB の移行

第 3 章「J2EE アプリケーションの移行」で説明したように、Application Server 6.x は EJB 1.1 仕様をサポートするのに対し、Application Server は EJB 2.0 仕様もサポートします。EJB 2.0 仕様では、次のような新機能がアーキテクチャーに導入されています。

Application Server でも EJB 1.1 仕様は引き続きサポートされますが、EJB 2.0 の拡張機能を利用できるように、EJB 2.0 アーキテクチャーの使用をお勧めします。

EJB 1.1 から EJB 2.0 への移行の詳細については、第 4 章「EJB 1.1 から EJB 2.0 への移行」を参照してください。

Application Server Platform Edition 8.2 固有の EJB の変更

Application Server 6.x から Application Server 8.2 に EJB を移行するときは、EJB のコードを変更する必要はありません。ただし、次のような DTD の変更が必要です。

セッション Bean


注 –

アプリケーション内の JNDI 名が変更されるのを防ぐため、EJB の JNDI 名を <jndi-name> タグ内で ejb/<ejb-name> として宣言してください。


SFSB フェイルオーバーをサポートする EJB アプリケーションの移行

Sun ONE Application Server 6.5 は、ステートフルセッション Bean のフェイルオーバーをサポートします。6.5 で SFSB フェイルオーバーを利用するには、フェイルオーバーと DSync (Distributed Store) を使用してセッションを設定する必要があります。DSync 機構は、実行中のセッション Bean の対話状態を保存するために使用されます。


注 –

Sun ONE Application Server 6.5 は、RMI/IIOP パス上のリッチクライアントに関して、ステートフルセッション Bean のフェイルオーバーをサポートしません。このようなアプリケーションは、Sun Java System Application Server 8.2 の RMI/IIOP パス上の SFSB フェイルオーバーを利用できます。SFSB フェイルオーバーの設定の詳細については、『Sun Java System Application Server Enterprise Edition 8.2 高可用性 (HA) 管理ガイド』「ステートフルセッション Bean のフェイルオーバー」を参照してください。


Sun Java System Application Server 8.2, Enterprise Edition は、ステートフルセッション Bean のフェイルオーバーをサポートします。Application Server 8.2 は、セッションデータの格納に高可用性データベース (HADB) を使用します。SFSB フェイルオーバーのサポートで順守される原則は、SFSB の対話状態をそのライフサイクルのあらかじめ定義された時点で持続的ストアに保存することです。この機構は、チェックポイントと呼ばれます。サーバーがクラッシュした場合は、SFSB のチェックポイント化された状態を持続的ストアから取得できます。セッションデータの格納に HADB を使用するには、HADB を永続的ストアとして設定してください。HTTP セッションとステートフルセッション Bean の基本となるストアは同じであり、永続的ストアの設定はセッションストアの設定とほぼ同じです。

セッションフェイルオーバーのための HADB の設定については、『Sun Java System Application Server Enterprise Edition 8.2 高可用性 (HA) 管理ガイド』の第 9 章「高可用性 (HA) セッション持続性とフェイルオーバーの設定」を参照してください。

Sun ONE Application Server 6.5 に配備されたステートフルセッション Bean を Sun Java System Application Server 8.2 に移行するときは、EJB のコードを変更する必要はありません。ただし、次の手順を実行する必要があります。

エンティティー Bean

メッセージ駆動型 Bean

Application Server はメッセージ駆動をシームレスにサポートします。このサポートは、Sun Java System Message Queue と Application Server を密接に統合し、ネイティブの組み込み型 JMS サービスを提供することによって実現されます。

Message Queue をインストールすると、任意の数の Application Server インスタンスをサポートする JMS メッセージングシステムが Application Server に提供されます。各サーバーインスタンスには、デフォルトで、そのインスタンスで実行中のすべての JMS クライアントをサポートする組み込み型 JMS サービスが関連付けられています。

『Enterprise JavaBeans Specification, v2.0』で定義されたコンテナ管理トランザクションと Bean 管理トランザクションの両方がサポートされます。

iPlanet Application Server のメッセージ駆動型 Beans サポートは、開発者に限定されており、古い専用 API を多用していました。メッセージングサービスは、iPlanet Message Queue for Java 2.0 によって提供されていました。Queue Connection Factory オブジェクトを設定するには、iPlanet Application Server の下に LDAP ディレクトリも必要でした。

現在は、QueueConnectionFactory と Application Server 内でメッセージ駆動型 Beans を設定するために必要なその他の要素を ejb-jar.xml ファイルに指定する必要があります。

配備記述子の変更の詳細については、「Application Server 6.x からの配備記述子の移行」を参照してください。メッセージ駆動型 Bean については、『Sun Java System Application Server Enterprise Edition 8.2 Developer’s Guide』「Using Message-Driven Beans」を参照してください。