BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   BEA WebLogic Server での BEA Jolt の使用   |   先頭へ   |   前へ   |   次へ   |   目次

 


トランザクションを使用する

トランザクション・オブジェクトを使用して、複数のサービス呼び出しを 1 つのアクションにグループ化し、アプリケーション・ロジック内でデータの整合性を維持することができます。次のメソッドを使用してセッション・プールからトランザクションを取得します。

  Transaction trans = ssPool.startTransaction(timeout);

トランザクション・オブジェクト trans は、トランザクションに対する参照を保持します。ssPool は SessionPool または ServletSessionPool オブジェクトになり、トランザクションの timeout 引数は秒単位で指定します。

トランザクションによってセッションが取得されると、そのトランザクションがコミットまたはアボートされるか、タイムアウトになるまで、ほかのトランザクションはそのセッションを使用できません。ただし、トランザクションには含まれない単独の要求によって使用することはできます。トランザクションがプールからセッションを取得できなかった場合、このメソッドは bea.jolt.pool.TransactionException をスローします。セッション・プールが中断されると、メソッドは bea.jolt.pool.SessionPoolException をスローします。

アプリケーションで call() メソッドを使用するごとに、最後のパラメータでトランザクション・オブジェクトを指定する必要があります。次に例を示します。

  ssPool.call("svcName", request, trans);

1 つのトランザクションで複数の呼び出しを行うことができます。この呼び出しは、トランザクション・オブジェクトのメソッドを使用してトランザクションをコミットまたはロールバックするまで完了しません。trans.commit() メソッドによってトランザクションが完了します。このメソッドは、コミットが成功した場合は 0 を返し、失敗した場合は TransactionException をスローします。

トランザクションをアボートする必要がある場合は、Transaction.rollback() メソッドを使用します。このメソッドは、トランザクションのアボートを試みます。アボートが成功した場合は 0 を返し、失敗した場合は TransactionException をスローします。

例外の処理

Jolt による Tuxedo サービスの呼び出し開始時にエラーや障害が発生した場合、Java の例外を使用してアプリケーションに報告されます。常に try / catch ブロックに call() メソッドを入れ、例外が発生した場合は適切な処理を行う必要があります。call() メソッドがスローする可能性のある例外とその理由を以下に示します。

 

先頭へ戻る 前のトピックへ 次のトピックへ