4.3.1.1. Currentインタフェース |
Currentインタフェースは、トランザクションの開始やトランザクションのコミット、ロールバックなどのトランザクションサービス機能を提供する疑似オブジェクトインタフェースです。
クラスorg.omg.CosTransactions.Currentには次のメソッドがあります。
begin | トランザクションを開始する |
commit | トランザクションをコミットする |
rollback | トランザクションをロールバックする |
rollback_only | トランザクションをロールバックに決定する |
get_status | トランザクションの状態を取得する |
get_transation_name | トランザクション名を取得する |
set_timeout | タイムアウト時間を設定する |
get_timeout | タイムアウト時間を取得する |
get_control | CosTransactions.Controlオブジェクトを取得する |
suspend | スレッドからトランザクションを切り離す |
resume | スレッドにトランザクションを割り当てる |
4.3.1.1.1. begin |
名称 | begin - トランザクションを開始する | ||
形式 |
package org.omg.CosTransactions; |
||
説明 | 新規のトランザクションをスレッド上に生成することにより、トランザクションを開始します。
スレッド上で既にトランザクションが開始されている場合はそのトランザクションのサブトランザクションを生成します。トランザクションが開始されていない場合はトップレベルトランザクションを生成します。 尚、WebOTX Transaction Serviceについては、リカバリサーバではサブトランザクションをサポートしています。そのため、リカバリサーバを利用してトランザクションの制御を行う場合は、org.omg.CosTransactions.SubtransactionsUnavailable例外はthrowしません。それに対してRCSはサブトランザクションをサポートしていませんので、サブトランザクションを生成しようとした場合はこの例外をthrowします。 |
||
戻り値 | ありません。 | ||
エラー | CORBA標準例外または次の例外がthrowされます。
|
||
関連項目 |
4.3.1.1.2. commit |
名称 | commit - トランザクションをコミットする | ||||||
形式 |
package org.omg.CosTransactions; |
||||||
説明 | スレッドに関連するトランザクションのコミット処理を行います。
コミット処理の結果がロールバックした場合はCORBA標準例外であるorg.omg.CORBA.TRANSACTION_ROLLEDBACKをthrowします。 スレッドに関連するトランザクションがサブトランザクションの場合サブトランザクションのコミット処理を実施します。 チェックドトランザクションの場合リプライチェックが行われ、サーバメソッドの呼び出しがすべて完了していない場合コミットは失敗してロールバックが実施されます。 トランザクションのサブトランザクションが生成されており、かつそれらがコミットあるいはロールバックを実施していない場合サブトランザクションはロールバックされます。 トランザクションのコミット処理はトランザクションの生成者のみが実行することができます。 report_heuristicsには、ヒューリスティック状態になった場合の例外通知を行うかどうかを指定します。 trueを指定した場合、コミットの処理が完了するまでこのメソッドは終了しません。この場合、トランザクションがヒューリスティックになると例外を通知します。 falseを指定した場合、このメソッドは即座に応答を返します。しかし、ヒューリスティック状態である場合は例外を通知しません。 コミット処理の成功、失敗に関わらずそのスレッドからそのトランザクションは切り離されます。トップレベルトランザクションの場合はトランザクションとの関連を失い、サブトランザクションの場合は親のトランザクションに関連付けられます。切り離されたトランザクションはトランザクション完了後に消滅します。 |
||||||
戻り値 | ありません。 | ||||||
エラー | CORBA標準例外または次の例外がthrowされます。
|
||||||
関連項目 |
4.3.1.1.3. rollback |
名称 | rollback - トランザクションをロールバックする | ||
形式 |
package org.omg.CosTransactions; public interface Current { public void rollback (); } |
||
説明 | スレッドに関連するトランザクションのロールバック処理を開始します。 スレッドに関連するトランザクションがサブトランザクションの場合はサブトランザクションのロールバック処理を開始します。ロールバック処理の成功、失敗に関わらずそのスレッドからそのトランザクションは切り離されます。トップレベルの場合はトランザクションとの関連を失い、サブトランザクションの場合は親のトランザクションに関連付けられます。切り離されたトランザクションはトランザクション完了後に消滅します。 |
||
戻り値 | ありません。 | ||
エラー | CORBA標準例外または次の例外がthrowされます。
|
||
関連項目 |
4.3.1.1.4. rollback_only |
名称 | rollback_only - トランザクションをロールバックに決定する | ||
形式 |
package org.omg.CosTransactions; public interface Current { public void rollback_only (); } |
||
説明 | スレッドに関連するトランザクションに対してロールバックオンリーをマーク付けします。 この処理を行うことによりrollbackと異なりトップレベルトランザクションがcommitまたはrollbackを要求したタイミングでロールバックされます。 このメソッドを呼び出す際に使用している Coordinatorオブジェクトに関連付けられたトランザクションに対してロールバックオンリーをマーク付けします。これによって、このトランザクションがコミットされることはなくなり、最終的にはロールバックしかされなくなります。このトランザクションがコミット、あるいはロールバック処理を開始してしまった後にこの処理を実行すると失敗します。 |
||
戻り値 | ありません。 | ||
エラー | CORBA標準例外または次の例外がthrowされます。
|
||
関連項目 |
4.3.1.1.5. get_status |
名称 | get_status - トランザクションの状態を取得する |
形式 |
package org.omg.CosTransactions; public interface Current { public Status get_status (); } |
説明 | スレッドに関連付けられているトランザクションの状態を返却します。スレッドにトランザクションが関連付けられていない場合はStatusNoTransactionとなります。コミットまたはロールバック実行後、スレッドはトランザクションとの関連を失うためget_statusでは正しい状態を取得できません。トランザクションの完了を取得する場合は Synchronizationインタフェースを使用する必要があります。 |
戻り値 | トランザクションの状態を返します。 |
エラー | CORBA標準例外がthrowされます。 |
関連項目 |
4.3.1.1.6. get_transaction_name |
名称 | get_transaction_name - トランザクション名を取得する |
形式 |
package org.omg.CosTransactions; public interface Current { public String get_transaction_name (); } |
説明 | トランザクションを一意に識別するための文字列を取得します。 |
戻り値 | スレッドに関連付けられているトランザクションを識別する表記可能な名前を返します。 スレッドにトランザクションが関連付けられていない場合、nullを返却します。 |
エラー | CORBA標準例外がthrowされます。 |
関連項目 |
4.3.1.1.7. set_timeout |
名称 | set_timeout - タイムアウト時間を設定する |
形式 |
package org.omg.CosTransactions; public interface Current { public void set_timeout ( int timeout ); } |
説明 | time_outにはトランザクションのタイムアウト時間を設定します。トランザクションが開始されて time_out秒経過しても完了していない場合、自動的にロールバックします。ただし、既にコミット処理を実施している場合はロールバックしません。time_outに0を指定した場合はタイムアウトになりません。タイムアウト時間は以後のbeginから有効になります。クライアント、サーバアプリケーションともプロセス単位に設定されます。 |
戻り値 | ありません。 |
エラー | CORBA標準例外がthrowされます。 |
関連項目 |
4.3.1.1.8. get_timeout |
名称 | get_timeout - タイムアウト時間を取得する |
形式 |
package org.omg.CosTransactions; public interface Current { public int get_timeout (); } |
説明 | set_timeoutで設定したタイムアウト時間を取得します。クライアント、サーバアプリケーションともプロセス単位に設定されます。 |
戻り値 | タイムアウト時間を返します。 |
エラー | CORBA標準例外がthrowされます。 |
関連項目 |
4.3.1.1.9. get_control |
名称 | get_control - Controlオブジェクトを取得する |
形式 |
package org.omg.CosTransactions; public interface Current { public Control get_control (); } |
説明 | スレッドに関連しているトランザクションのControlオブジェクトを入手します。 入手した Controlオブジェクト を使用することで明示的なトランザクション処理を行うことができます。 |
戻り値 | Conrtolオブジェクトのオブジェクトリファレンスを返します。 トランザクションが実行されていない場合、nullを返します。 |
エラー | CORBA標準例外がthrowされます。 |
関連項目 |
4.3.1.1.10. suspend |
名称 | suspend - スレッドからトランザクションを切り離す |
形式 |
package org.omg.CosTransactions; public interface Current { public Control suspend (); } |
説明 | スレッドに関連しているトランザクションを一時的にスレッドから切り離します。
トランザクションが開始されていないスレッド、既に完了したスレッドやsuspendされたスレッド上の場合、nullを返します。 |
戻り値 | スレッドに関連するトランザクションのControlオブジェクトのオブジェクトリファレンスを返します。 |
エラー | CORBA標準例外がthrowされます。 |
関連項目 |
4.3.1.1.11. resume |
名称 | resume - スレッドにトランザクションを割り当てる | ||||
形式 |
package org.omg.CosTransactions; public interface Current { public void resume ( org.omg.CosTransactions.Control which ); } |
||||
説明 | スレッドにwhichで指定したControlのトランザクションを関連付けます。
nullが指定されるとそのスレッドはトランザクションとの関連を失います。チェックドトランザクションの場合、現在処理中のトランザクションのリプライチェックと新規に割り当てるトランザクションのレジームチェックを行います。 WebOTX Transaction Serviceの実装ではプロセス内でbeginしたトランザクション以外のトランザクションをresumeすることはできません。 |
||||
戻り値 | ありません。 | ||||
エラー | CORBA標準例外または次の例外がthrowされます。
|
||||
関連項目 |