bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo CORBA ActiveX

 Previous Next Contents Index View as PDF  

トランザクションの使い方

ここでは、BEA Tuxedo CORBA の ActiveX クライアント・アプリケーションでトランザクションを使用する方法を説明します。

TransactionCurrent オブジェクトの概要については、「第 1章 概要」を参照してください。

 


トランザクションの概要

クライアント・アプリケーションは、トランザクション処理を使用してデータの有効性、一貫性、永続性を保証します。BEA Tuxedo CORBA のトランザクションを使用すると、クライアント・アプリケーションはトランザクションを開始および終了し、トランザクションのステータスを取得できます。BEA Tuxedo ソフトウェアでは、CORBA のオブジェクト・トランザクション・サービスで定義されたトランザクションを、使いやすいように拡張して使用します。

トランザクションは、インターフェイスで定義されます。アプリケーション設計者は、BEA Tuxedo クライアント/サーバ・アプリケーション内のどのインターフェイスでトランザクションを処理するかを指定します。C++ サーバ・アプリケーションのインプリメンテーション・コンフィギュレーションファイル (ICF) で、各インターフェイスのトランザクション方針が定義されます。通常、使用可能なインターフェイスに対する ICF ファイルまたはサーバ記述ファイルが、アプリケーション設計者からクライアント・プログラマに提供されます。

 


トランザクションの開発プロセスの概要

トランザクションは、以下の手順でクライアント・アプリケーションに追加します。

手順

説明

1

Bootstrap オブジェクトを使用し、指定した BEA Tuxedo ドメインで TransactionCurrent オブジェクトへのリファレンスを取得します。

2

TransactionCurrent オブジェクトのメソッドを使用して、トランザクション・オペレーションに CORBA オブジェクトのインターフェイスを含めます。


 

以下の節では、Transactions University サンプル・アプリケーションにあるクライアント・アプリケーションの一部を使用して、この手順を説明します。Transactions University サンプル・アプリケーションの詳細については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA University サンプル・アプリケーション』を参照してください。Transactions University サンプル・アプリケーションは、BEA Tuxedo ソフトウェア・キットの次のディレクトリにあります。

drive:¥tuxdir¥samples¥corba¥university¥transactions

 


ステップ 1: Bootstrap オブジェクトを使用して TransactionCurrent オブジェクトを取得する

Bootstrap オブジェクトを使用し、指定した BEA Tuxedo ドメインで TransactionCurrent オブジェクトへのオブジェクト・リファレンスを取得します。TransactionCurrent オブジェクトの詳細については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo CORBA プログラミング・リファレンス』 参照してください。

次の Visual Basic の例は、Bootstrap オブジェクトを使用して TransactionCurrent オブジェクトを返す方法を示します。

Set objTransactionCurrent =
objBootstrap.CreateObject(“Tobj.TransactionCurrent”)

 


ステップ 2: TransactionCurrent メソッドを使用する

TransactionCurrent オブジェクトには、クライアント・アプリケーションでトランザクションを管理できるようにするメソッドがあります。これらのメソッドを使用すると、トランザクションを開始および終了して、現在のトランザクションに関する情報を取得できます。TransactionCurrent オブジェクトは、以下のメソッドを提供します。

基本的なトランザクションは、以下のように動作します。

  1. クライアント・アプリケーションは、Tobj::TransactionCurrent::begin() メソッドを使用してトランザクションを開始します。このメソッドは値を返しません。

  2. CORBA インターフェイスのオペレーションは、トランザクションのスコープ内で実行されます。これらのオペレーションの一部を呼び出して例外が発生した場合 (明示的に、または通信の失敗の結果として)、その例外がキャッチされ、トランザクションはロールバックされます。

  3. Tobj::TransactionCurrent:commit() メソッドを使用すると、現在のトランザクションがコミットされます。このメソッドは、トランザクションを終了して、オペレーションの処理を開始します。トランザクションは、トランザクションのすべてのパーティシパントがコミットに同意した場合にのみコミットされます。

    トランザクションとクライアント・アプリケーションの関連付けは、アプリケーションが Tobj::TransactionCurrent:commit() メソッドまたは Tobj::TransactionCurrent:rollback() メソッドを呼び出したときに解除されます。次の Visual Basic の例は、クラスに登録している生徒のオペレーションをカプセル化するためにトランザクションを使用する場合を示しています。

' トランザクションを開始
'
objTransactionCurrent.begin
'
' コースの登録を試行
'
NotRegisteredList = objRegistrar.register_for_courses(mStudentID,
CourseList, exception)
'
If exception.EX_majorCode = NO_EXCEPTION then
' 要求が成功したら、トランザクションをコミット
'
Dim report_heuristics As Boolean
report_heuristics = True
objTransactionCurrent.commit report_heuristics
Else
' 要求が失敗したら、トランザクションをロールバック
'
objTransactionCurrent.rollback
MsgBox "Transaction Rolled Back"
End If

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy