bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo CORBA ActiveX > トランザクションの使い方 |
Tuxedo CORBA ActiveX
|
トランザクションの使い方
ここでは、BEA Tuxedo CORBA の ActiveX クライアント・アプリケーションでトランザクションを使用する方法を説明します。
TransactionCurrent オブジェクトの概要については、「第 1章 概要」を参照してください。
トランザクションの概要
クライアント・アプリケーションは、トランザクション処理を使用してデータの有効性、一貫性、永続性を保証します。BEA Tuxedo CORBA のトランザクションを使用すると、クライアント・アプリケーションはトランザクションを開始および終了し、トランザクションのステータスを取得できます。BEA Tuxedo ソフトウェアでは、CORBA のオブジェクト・トランザクション・サービスで定義されたトランザクションを、使いやすいように拡張して使用します。
トランザクションは、インターフェイスで定義されます。アプリケーション設計者は、BEA Tuxedo クライアント/サーバ・アプリケーション内のどのインターフェイスでトランザクションを処理するかを指定します。C++ サーバ・アプリケーションのインプリメンテーション・コンフィギュレーションファイル (ICF) で、各インターフェイスのトランザクション方針が定義されます。通常、使用可能なインターフェイスに対する ICF ファイルまたはサーバ記述ファイルが、アプリケーション設計者からクライアント・プログラマに提供されます。
トランザクションの開発プロセスの概要
トランザクションは、以下の手順でクライアント・アプリケーションに追加します。
以下の節では、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 オブジェクトは、以下のメソッドを提供します。
新しいトランザクションを作成します。以降のオペレーションは、このトランザクションのスコープ内で発生します。クライアント・アプリケーションがトランザクションを開始したとき、デフォルトのトランザクション・タイムアウトは 300 秒です。set_timeout メソッドで、このデフォルト値を変更できます。
トランザクションを正常に終了します。このクライアント・アプリケーションですべてのオペレーションが正常に終了したことを示します。
トランザクションを強制的にロールバックします。
可能なアクションのみがロールバックされるようにトランザクションをマークします。通常、このメソッドは、サーバ・アプリケーションでのみ使用されます。
現在のトランザクションの参加を一時停止します。このメソッドは、トランザクションを示すオブジェクトを返し、クライアント・アプリケーションが後でトランザクションを再開できるようにします。
指定したトランザクションの参加を再開します。
クライアント・アプリケーションでトランザクションのステータスを返します。
トランザクションを示す出力可能な文字列を返します。
トランザクションに関連付けられたタイムアウトを修正します。デフォルトのトランザクション・タイムアウト値は 300 秒です。begin() メソッドで明示的に開始するのではなく、トランザクションが自動的に開始した場合、タイムアウト値は、UBBCONFIG ファイルの TRANTIME パラメータで指定した値です。TRANTIME パラメータの設定に関する詳細については、BEA Tuxedo オンライン・マニュアルの『BEA Tuxedo アプリケーション実行時の管理』 参照してください。
トランザクションを表すコントロール・オブジェクトを返します。
基本的なトランザクションは、以下のように動作します。
' トランザクションを開始
'
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
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |