3.19.1 アプリケーション開発時の注意事項
EJBクライアントアプリケーションでトランザクションを開始する場合に,アプリケーション開発時に注意することを次に示します。EJBクライアントアプリケーションでのトランザクションの実装については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「3.5 EJBクライアントアプリケーションでのトランザクションの実装」を参照してください。
-
EJBクライアントアプリケーションでグローバルトランザクションを使用するには,EJBクライアントアプリケーション起動直後に,EJBクライアントアプリケーションで使用するサービスを初期化するための処理をユーザプログラムから呼び出す必要があります。この初期化処理を呼び出すことで,トランザクションマネージャとトランザクションサービスが初期化されます。初期化処理としては,EJBClientInitializerクラスのinitialize()メソッドを呼び出してください。
-
トランザクション処理中にEJBクライアントアプリケーションが異常終了した場合も,サービスを初期化するための処理をユーザプログラムで呼び出すことによって,トランザクションのリカバリ処理が開始できるようになります。なお,リカバリ処理はバックグラウンドで実行されるため,initialize()メソッドはリカバリ処理の完了を待たないでリターンします。EJBクライアントアプリケーションの再起動によってグローバルトランザクションのリカバリ処理が開始するように,EJBクライアントアプリケーションを設計してください。
-
EJBクライアントアプリケーションでトランザクションを開始している場合,必ずすべてのトランザクションを決着させてから,EJBクライアントアプリケーションが停止するように設計してください。トランザクションの決着処理を待たないでEJBクライアントアプリケーションが停止すると,未決着トランザクションがトランザクション内に残留するおそれがあります。この状態になると,アプリケーションサーバの正常停止やリソースアダプタの停止ができなくなったり,リソースのロックが解除されなくなったりする場合があります。