Interstage Application Server/Interstage Web Server 移行ガイド |
目次 索引 |
第6章 J2EEの移行 | > 6.5 EJBサービスの移行 |
Interstage Application Server V7.0(以降、Interstage V7.0)での変更内容を説明します。
Interstage Application Server V7.0以降では、EJBアプリケーションを配備する際、EJB規約に準拠しているかのチェックが緩和されています。
以下が、V7.0以降で運用可能となるEJB規約の制限です。
No.
Bean種別
チェック対象
チェック内容
1
Enterprise Beanクラス
すべて
ビジネスメソッドがstaticで定義されている。
2
Enterprise Beanクラス
Entity Bean
Enterprise Beanクラスに定義されているejbCreateメソッドの復帰値とdeployment descriptorに設定されている<prim-key-class>は一致しているが、Enterprise Beanクラスの親のクラスに定義されているejbCreateメソッドの復帰値が<prim-key-class>と一致しない。
3
Enterprise Beanクラス
BMP Entity Bean
Enterprise Beanクラスに定義されているejbFind<〜>メソッドのthrows句にある例外が、Homeインタフェースに定義されているfind<〜>のthrows句にない。
4
Enterprise Beanクラス
Message-driven Bean
ejbCreateメソッドのthrows句にjavax.ejb.CreateExceptionがある。
5
Enterprise Beanクラス
CMP2.0 Entity Bean
ejbCreateメソッドのthrows句にjavax.ejb.CreateExceptionがない。
6
Primary Keyクラス
CMP Entity Bean
deployment descriptorに<primkey-field>が指定されておらず、Primary Keyクラスにpublicではないフィールドがある。
7
Primary Keyクラス
CMP Entity Bean
deployment descriptorに<primkey-field>が指定されておらず、<cmp-field>にないフィールドがPrimary Keyクラスに定義されている。
8
Homeインタフェース
Session Bean
Entity BeanCreateメソッドのthrows句にjavax.ejb.CreateExceptionがない。
9
deployment descriptor
CMP2.0 Entity Bean
<multiplicity>に“one”または“many”を指定している
無通信監視時間のデフォルト値が、30分に変更になりました。30分以上、STATEFUL Session Beanにアクセスしないアプリケーション構成の場合は、以下のエラーが発生する可能性があるため、無通信監視時間を大きく設定してください。
java.rmi.NoSuchObjectException: CORBA OBJECT_NOT_EXIST 0 No; nested
exception is: org.omg.CORBA.OBJECT_NOT_EXIST: CORBA_Request_get_response
minor code: 0 completed: No
無通信監視時間は、Interstage管理コンソールの[ワークユニット] > [IJServer名] > [EJBアプリケーション]からSTATEFUL Session Beanを選択して、Interstage拡張情報の“無通信監視時間”に設定してください。
V6互換用のIJServerに配備したSTATEFUL Session Beanのデフォルト値は、以下のとおりです。
プラットフォーム/製品
デフォルト値
Windows(R)
600秒(10分)
上記以外
0秒(時間監視しない)
Interstage Application Server V7.0より、Entity Beanの復帰値Collection型finderメソッドを実行して取得したjava.util.Collectionオブジェクトに対して、java.util.Collectionインタフェースに定義されているすべてのメソッドが使用可能となりました。
CMP1.1およびBMPで使用する場合には、以下の条件があります。以下の条件で使用しない場合は、V6.0以前の範囲になります。CMP2.0では無条件に使用できます。
- IJServerのタイプが、WebアプリケーションとEJBアプリケーションを同一JavaVMで運用
トランザクション属性に“Mandatory”以外のトランザクション属性を指定して下さい。- IJServerのタイプが、WebアプリケーションとEJBアプリケーションを別JavaVMで運用 または、EJBアプリケーションのみ運用
トランザクション属性にMandatory以外のトランザクション属性を指定するか、トランザクション属性に“Mandatory”を指定する場合は、Interstage管理コンソールの[アプリケーション環境定]より、「ローカル呼出し」に“しない”を設定して下さい。
Interstage Application ServerでTraffic Directorと連携する場合、V6.0ではEJBアプリケーションを配備した後に、配備したアプリケーションごとにオブジェクトリファレンスの再登録(オブジェクトリファレンスの確認/削除/再登録)が必要でした。
V7.0以降ではIJServerに負荷分散ホスト名を指定するだけで、EJBアプリケーションの配備時に自動的に環境設定を行いますので、EJBアプリケーションごとの操作は不要です。また、配備済みのEJBアプリケーションに対して、「IJServerの環境設定」の内容を更新するだけで環境設定ができます。
IJServer単位で設定した場合には、非互換はありません。
EJBアプリケーションごとにTraffic Directorと連携する場合、V6.0と同様にCORBAサービスのコマンドを使用して、アプリケーションの配備後にオブジェクトリファレンスを再登録する手順で設定を行ってください。
------------------------------------------------------------------------------- Name(Type) Object information(detail) Default object information(detail) EasyBean(o) RMI:pkgTest.EasyBeanHome:0000000000000000, (a) (b) IDL:com.fujitsu.interstage.j2ee.ijserver/IJServer001:1.0, (march:8002:1.1:UNICODE(UCS2)) (c) ------------------------------------------------------------------------------- a) EJBアプリケーション名 b) インタフェースリポジトリ名 c) インプリメンテーションリポジトリ名
OD_or_adm -d -n [EJBアプリケーション名] |
OD_or_adm -c [インタフェースリポジトリID] -a [インプリメンテーションリポジトリID] -h [仮想IPアドレスのホスト名] -n [アプリケーション名] -p [ポート番号] |
OD_or_adm -c RMI:pkgTest.EasyBeanHome:0000000000000000 -a IDL:com.fujitsu.interstage.j2ee.ijserver/IJServer001:1.0 -h vhost -p 8002 -n EJB001 |
オブジェクトリファレンスの再登録後、Interstage管理コンソールの[ワークユニット] > [IJServer名] > [環境設定]からIJServerの更新を行った場合には、再度オブジェクトリファレンスの再登録を行ってください。
Interstage Application Server V7.0以降でEJB QLを使用する場合、デフォルトでV6.0のEJB QLの機能を拡張したEJB QL拡張が設定されています。
拡張機能を使用しない(EJB2.0規約の範囲内で運用する)場合は、Interstage管理コンソールの[システム] > [環境設定] の 詳細設定の下にある[EJBサービス詳細設定] を参照し、“CMP2.0のEJB QL拡張”の定義項目を“使用しない”に変更してください。
EJB QL拡張を使用しない場合、以下の拡張機能が制限されます。
Interstage V7.0以降では、セションタイムアウト機能、トランザクションタイムアウト機能は使用できません。
これらの機能は、Interstage V6.0以前では非推奨機能であり旧資産との互換は保証されているため、代替機能への移行を推奨します。代替機能への移行方法については、非推奨機能を参照してください。
1つのIJServerに同じJNDI名のEJBアプリケーションが配備されないように、EJBアプリケーション名の重複チェックを行います。
IJServerのタイプが「WebアプリケーションとEJBアプリケーションを同一JavaVMで運用」の場合、V6.0では異なるモジュールでも上書きしていましたが、V7.0以降ではモジュールが異なる場合に上書きを行わないようチェックを行います。
目次 索引 |