6 EJBセッションBeanバインディングの構成

この章では、Oracle WebLogic ServerでSCAサービスおよびSCA参照用のEJBセッションBeanバインディングを構成する方法について説明します。

EJBセッションBeanバインディングはSCAサービスおよびSCA参照の両方に適用できます。アプリケーション用のSpringアプリケーション・コンテキスト・ファイルの<binding.ejb>要素で、EJBセッションBeanバインディングを構成します。

ノート:

EJBバインディング・コンポーネントの実装は、SCA EJBセッションBeanバインディング仕様(http://www.oasis-opencsa.org/sca-bindings)に基づきます。

ただし、このリリースのWebLogic SCAでは、次の機能はサポートされません

  • ステートフル・セッションBeanバインディング(対話はサポートされません)

  • <ejb-link>要素

  • ローカルEJBサービス・バインディング

  • ローカルEJB参照バインディング

binding.ejb要素の属性

binding.ejb要素の属性は次のとおりです。

name

オプション。バインディングの名前を指定します。

uri

必須。参照のEJBバインディングの場合、uriはターゲットEJBのJNDI名を指定します。サービスのEJBバインディングの場合、uri値はEJBがバインドされるJNDI名です。

拡張CORBA名URIはサポートされません。次の2つの単純化されたパターンがサポートされます。どちらも、JNDI名ejb/MyHomeにバインドされるサービス実装になります。

  • uri="corbaname:rir:#ejb/MyHome"

  • uri="ejb/MyHome"

dispatchPolicy

オプション。サービス・バインディングとともに使用されます。着信起動に使用されるWorkManagerの名前を指定します。

サービスへのバインディング

binding.ejbがSCAサービスに構成されている場合、サービス・インタフェースの実装はアプリケーションがデプロイされるときにJNDIで使用可能になります。するとサービスはEJBプログラミング・モデルを使用して起動できます。たとえば、これによりクライアントは、基礎となるサービスがデプロイされたEJBであるかのように、サービスをルックアップおよび起動できます。これは従来のEJBのクライアントを更新する必要なしに、 既存のEJBサービスをSCA実装で置き換えたい場合に有用なことがあります。

EJB3プログラミング・モデルだけがEJBセッションBeanサービス・バインディング用にサポートされます。

binding.ejbのuri属性を使用してJNDI名を指定します。

binding.ejb要素の属性を参照してください。

すべてのEJBサービス・バインディングはリモートなので、リモートからルックアップおよび起動できます。

リモート・サービスの実装はクラスタ化可能です。サービス・バインディングにクライアント・タイムアウトを設定できます。クライアント・タイムアウトを指定するには、binding.ejb jarファイルにあるEJBServiceDelegateImplRTD.xmlファイルを編集します。

EJBサービス・バインディングはオプションでディスパッチ・ポリシーを指定できます。ディスパッチ・ポリシーを指定するには、<binding.ejb>dispatchPolicy属性を、着信起動に使用するWorkManagerの名前に設定します。設定したWorkManagerが見つからない場合、実行時に警告が発行され、デフォルトのWorkManagerが使用されます。

参照へのバインディング

binding.ejbがSCAリファレンスに対して構成されていると、ターゲットEJBは、EJBプログラミング・モデルについて知らなくても解決され、呼び出されます。(WebLogic SCAランタイムは、JNDIルックアップから返されたオブジェクトがjavax.ejb.EJBHomeを実装するしないかに基づいて、ターゲットEJBのプログラミング・モデルを決定します。)

ターゲットEJBはすぐに解決されるわけではなく、起動のサービスの必要に応じて実行時に解決されます。

これにより、SCA POJO実装はデプロイされたEJBを他のSCA参照の起動と同じ方法で起動できます。WebLogic SCAランタイムはターゲットEJBをJNDIからリックアップし、メソッド呼出しをEJBへ委任します。この方法でbinding.ejbを使用すると、依存コンポーネントの実装を更新する必要なく、柔軟に、EJBサービスをEJB以外のサービスに置き換えることができます。

次に説明するように、EJB2およびEJB3プログラミング・モデルは参照バインディング用にサポートされます。

EJB2プログラミング・モデル

ターゲットEJBがEJB 2.xクライアント・ビューを使用する場合、バインディング実装はhome.create()メソッドを起動してEJBのリモート・インタフェース実装を取得します。バインディング実装はまた参照インタフェース・メソッド起動をEJBリモート・インタフェース起動へ変換します。

参照インタフェースのメソッドは、SCA EJBセッションBeanバインディング仕様(http://www.oasis-opencsa.org/sca-bindings)のルールに従って、リモート・インタフェースにマップされます。

EJB3プログラミング・モデル

EJB3プログラミング・モデルが使用される場合、ターゲットEJBは参照インタフェースを実装できますが、必須ではありません。参照インタフェースを実装しない場合、SCA EJBセッションBeanバインディング仕様の2.2項のルールが適用されます。EJBバインディング・コードは参照インタフェース・メソッド起動をEJBビジネス・インタフェース起動へ変換します。