Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

15.4 EJBにアクセスするバッチアプリケーションの作成

バッチアプリケーションからJ2EEアプリケーションのEJBにアクセスできます。EJBにアクセスするバッチアプリケーションを作成する場合,アクセスするEJBを次に示す名称でルックアップして使用することができます。

EJBにアクセスする場合,次に示す手順でバッチアプリケーションを準備します。

  1. バッチアプリケーションからアクセスするEJBの準備
    バッチアプリケーションからアクセスするEJBを含むJ2EEアプリケーションを開始状態にします。
  2. バッチアプリケーションの実装
    バッチアプリケーション内に,EJBを使用するためのコードを実装します。
  3. バッチアプリケーションの実行
    2.で作成したバッチアプリケーションを実行します。

それぞれの手順の詳細を次に説明します。

<この節の構成>
(1) EJBの準備
(2) バッチアプリケーションの実装
(3) バッチアプリケーションの実行

(1) EJBの準備

バッチアプリケーションからアクセスするEJBを持つJ2EEアプリケーションを用意します。また,J2EEアプリケーションを実行するためのJ2EEサーバも用意します。J2EEサーバの構築については,マニュアル「Cosminexus 簡易構築・運用ガイド」のJ2EEアプリケーションを実行するシステム構築に関する説明を参照してください。

構築したJ2EEサーバ上で,J2EEアプリケーションを開始します。cjgetstubsjarコマンドを使用して,開始したJ2EEアプリケーションのRMI-IIOPスタブおよびインタフェースを取得しておきます。

なお,バッチアプリケーションからEJBにアクセスする場合,別名によるルックアップをするときは,事前にユーザ指定名前空間機能を使用してEJBの別名を設定しておいてください。EJBの別名の設定については,「8.3 Enterprise BeanまたはJ2EEリソースへの別名付与(ユーザ指定名前空間機能)」を参照してください。

(2) バッチアプリケーションの実装

「(1) EJBの準備」で設定したEJBを取得するためのコードを,バッチアプリケーションに実装します。コードの例を次に示します。

String EjbName = <EJBのルックアップ名>;
InitialContext ic = new InitialContext();
Object objref = ic.lookup(EjbName);
<ホームインタフェースクラス名> home =
   (<ホームインタフェースクラス名>) PortableRemoteObject.narrow(objref,
                             <ホームインタフェースクラス名>.class);
<EJBオブジェクトクラス名> ejbobj = home.create();
 

ホームインタフェースおよびEJBオブジェクトファイルはあらかじめ準備しておいてください。バッチアプリケーションのコンパイル時および実行時にクラスパスに含める必要があります。

(3) バッチアプリケーションの実行

バッチアプリケーションを実行する場合,クラスパスに「(1) EJBの準備」で取得したスタブや「(2) バッチアプリケーションの実装」で使用したインタフェースファイルをフルパスで指定します。

EJBを検索するネーミングサービスのURLは,usrconf.properties(バッチアプリケーション用ユーザプロパティファイル)のjava.naming.provider.urlの値として指定します。

ただし,リソース接続機能とEJBアクセス機能を同時に使用する場合は,ネーミングサービス切り替え機能を使用して,EJBをルックアップするネーミングサービスを指定してください。ネーミングサービス切り替え機能については,「8.6 CORBAネーミングサービスの切り替え」を参照してください。