Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)


3.5.1 EJBクライアントでトランザクションを使用する手順

ここでは,EJBクライアントでトランザクションを使用する場合の手順を説明します。

  1. EJBクライアントアプリケーション起動時のクラスパスに,次のJARファイルを追加します。

    • Windowsの場合

      <Application Serverのインストールディレクトリ>\TPB\lib\tpotsinproc.jar

      <Application Serverのインストールディレクトリ>\CC\lib\ejbserver.jar

    • UNIXの場合

      /opt/Cosminexus/TPB/lib/tpotsinproc.jar

      /opt/Cosminexus/CC/lib/ejbserver.jar

    注※

    ejbserver.jarはHiEJBClientStatic.jarよりも後ろに追加してください。

  2. EJBクライアントアプリケーション起動時に必要なシステムプロパティを追加します。

    システムプロパティの追加方法については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.19 EJBクライアントアプリケーションでトランザクションを開始する場合の注意事項」を参照してください。

  3. EJBクライアントアプリケーションのプロセスの起動直後に,EJBクライアントアプリケーションに実装したユーザコードから,サービスの初期化処理を実行します。

    サービスの初期化処理を実行するには,EJBClientInitializerクラス(com.hitachi.software.ejb.ejbclient.EJBClientInitializer)を呼び出します。

    なお,EJBClientInitializerクラスのinitializeメソッドを呼び出す前に,javax.naming.InitialContextを生成した場合や,UserTransactionFactoryクラスのgetUserTransactionメソッドを呼び出した場合は,その時点で初期化処理が行われます。このため,EJBClientInitializerクラスによる初期化処理は不要です。

    EJBClientInitializerクラスの文法や機能については,マニュアル「アプリケーションサーバ リファレンス API編」の「4.2 EJBClientInitializerクラス」を参照してください。

  4. UserTransactionオブジェクトを取得します。

    UserTransactionの取得方法には,次の2種類があります。

    • UserTransactionFactoryクラスを使用する

      com.hitachi.software.ejb.ejbclient.UserTransactionFactoryクラスのgetUserTransactionメソッドを使用して取得します。UserTransactionFactoryクラスの文法や機能については,マニュアル「アプリケーションサーバ リファレンス API編」の「4.5 UserTransactionFactoryクラス」を参照してください。

    • ルックアップを使用する

      ネーミングサービスからルックアップして取得します。ルックアップを使用したUserTransactionの取得方法については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)」の「3.4.8 UserTransactionインタフェースを使用する場合の処理概要と留意点」を参照してください。

    EJBクライアントでは,UserTransactionFactoryクラスを使用する方法を推奨しています。ただし,他社のアプリケーションサーバからの移行などによって,EJBクライアントアプリケーションのソースコードを変更できない場合は,ルックアップを使用します。

  5. Enterprise Beanを呼び出すスレッドから,UserTransactionインタフェースのbeginメソッドを呼び出し,トランザクションを開始します。

  6. サーバ上のEnterprise Beanを呼び出します。

  7. Enterprise Beanを呼び出したスレッドから,UserTransactionインタフェースのcommitメソッドまたはrollbackメソッドを呼び出して,トランザクションを決着します。