ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server WebLogic SCAアプリケーションの開発
11g リリース1(10.3.3)
B61414-01
  目次へ移動
目次

前
 
次
 

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

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

EJBセッションBeanバインディングはSCAサービスとSCA参照の両方に適用できます。アプリケーション用のSpringアプリケーション・コンテキスト・ファイルの<binding.ejb>要素で、EJBセッションBeanバインディングを構成します。背景情報については、次を参照してください。


注意:

EJBバインディング・コンポーネントの実装は、SCA EJBセッションBeanバインディング仕様(http://www.osoa.org/download/attachments/35/SCA_EJBSessionBeanBinding_V100.pdf)に基づきます。ただし、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にバインドされるサービスの実装となります。

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ランタイムはJNDIからのターゲットEJBをルックアップし、メソッド・コールをEJBへ委任します。この方法でbinding.ejbを使用すると、依存するコンポーネントの実装を更新する必要がなく、EJBサービスを非EJBサービスで置き換える柔軟性がもたらされます。

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

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

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

参照インタフェースのメソッドは、SCA EJBセッションBeanバインディング仕様(http://www.osoa.org/download/attachments/35/SCA_EJBSessionBeanBinding_V100.pdf)のインタフェースのマッピングに関する項のルールに従い、リモート・インタフェースにマップされます。

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

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