![]() |
![]() |
WebOTX Manual V10.3 (第4版) 目次を表示 |
トランザクションの状態一覧 |
CORBA トランザクションサービス(OTS)、およびJava Transaction API(JTA)で規定されているトランザクションの状態には次のものがあります。
なお、右側の○×は次のことをあらわしています。
C:強制コミット処理が実施可能な場合は○、不可能な場合は×です。
R:強制ロールバック処理が実施可能な場合は○、不可能な場合は×です。
F:破棄(フォゲット)処理が実施可能な場合は○、不可能な場合は×です。
D:強制削除処理が実施可能な場合は○、不可能な場合は×です。
これらの処理は統合運用管理ツール、およびコマンドから行うことができます。
状態 | 説 明 | C | R | F | D |
StatusActive | トランザクションがアクティブ状態であることを示します。これはトランザクションが開始された後にコミットあるいはロールバック処理が実行されておらず、かつロールバックオンリーにマーク付けされていない状態です。 | × | ○ | × | ○ |
StatusMarkedRollback | トランザクションがロールバックオンリーにマーク付けされている状態であることを示します。最終的にはロールバックされることになります。CosTransactions.Coordinator.rollback_only、およびCosTransactions::Coordinator::rollback_onlyを実行した場合、この状態に遷移します。 | × | ○ | × | ○ |
StatusPrepared | トランザクションがプリペアされた状態であることを示します。これはトランザクションに登録されたリソースオブジェクトすべてがCosTransactions.Resource.prepare、およびCosTransactions::Resource::prepareの戻りとしてCosTransactions::Voteを返却し、次のどのような処理要求を受けるか待ち合わせている状態です。 | ○ | ○ | × | ○ |
StatusCommitted | トランザクションがコミット処理を実行している途中でヒューリスティックが発生した状態(人為的な対応が必要な矛盾した状態)になったことを示します。 | × | × | ○ | ○ |
StatusRolledBack | トランザクションがロールバック処理を実行している途中でヒューリスティックが発生した状態になったことを示します。 | × | × | ○ | ○ |
StatusUnknown | トランザクションの状態が不明であることを示します。 | × | × | ○ | ○ |
StatusNoTransaction | トランザクションが既に完了してしまった状態であることを示します。 | × | × | × | ○ |
StatusPreparing | トランザクションがプリペア処理(第1フェーズ処理)を実行している状態であることを示します。これはトランザクションに登録されたリソースオブジェクトの中で、CosTransactions.Resource.prepare、およびCosTransactions::Resource::prepareの応答を待ち合わせているものが存在しているという状態です。 また、「1フェーズコミット対応リソース」(*1)をトランザクションに参加させている場合、このリソースに対するコミット発行中もこの状態になります。 |
○(*2) | ○ | × | ○ |
StatusCommitting | トランザクションがコミット処理を実行している状態であることを示します。これはトランザクションに登録されたリソースオブジェクトの中で、CosTransactions.Resource.commit、およびCosTransactions::Resource::commit、あるいはCosTransactions.Resource.commit_one_phase、およびCosTransactions::Resource::commit_one_phaseの応答を待ち合わせているものが存在しているという状態です。 | ○ | × | × | ○ |
StatusRollingBack | トランザクションがロールバック処理を実行している状態であることを示します。これはトランザクションに登録されたリソースオブジェクトの中で、CosTransactions.Resource.rollback、およびCosTransactions::Resource::rollbackの応答を待ち合わせているものが存在しているという状態です。 | × | ○ | × | ○ |
(*1):
トランザクションに登録されるリソースのうち、1フェーズコミットメントにしか対応していないリソースをさします。2フェーズコミットメントに対応していないデータベースにアクセスするために使用されますが、WebOTXが提供するTransactionサービスでは、それをグローバルトランザクションに参加させ、2フェーズコミットメントに対応したリソースとの調整(データベース同時更新)を可能にするための機構を提供しています。
(*2):
「1フェーズコミット対応リソース」をトランザクションに参加させている場合、1フェーズコミット対応リソースに対するコミットを発行している最中は、Preparing状態と表示されます。
1フェーズコミット対応リソースのコミット中に障害が発生した場合、トランザクション全体をコミットさせるべきかロールバックさせるべきかの判断をTransactionサービス(トランザクションマネージャ)自身が下すことができません。トランザクションの操作をオペレータにより行う必要があります。このような運用にしている根拠については、
「 構築・運用 > ドメインの拡張機能 > Transactionサービス」
に詳細を記載しています。
なお、1フェーズコミット対応リソースがトランザクションに参加していない場合は、Transactionサービスで判断できるのでコミットを発行すると失敗します。