• 検索結果がありません。

commit

ドキュメント内 Slide 1 (ページ 59-72)

フェーズ

1 (prepare)

2PC 処理の流れ

トランザクション マネージャ

リソース マネージャ1

リソース マネージャ2

データベース1

アプリケーション

Agenda

• 分散トランザクションとは?

• Java Transaction API

分散トランザクションとは?

• WebLogic Server のトランザクション設定

ドランザクションの設定

モニタリング

リソースの設定

トランザクションの設定

• トランザクションサービスは WebLogic Server 起動時 に開始される

トランザクションの設定

ドメイン・レベルで設定を行う

ドメインで同じトランザクション設定を使用

トランザクションのモニタリング

サーバ・レベルでモニタリングを行う

管理コンソール

, WLST …

参加リソース

(JDBC

データソースなど

)

の設定

リソース・レベルで設定を行う

トランザクション設定

トランザクション開始からフェーズ

1

了までの持続時間。この時間を超える

TX

はタイムアウトし、ロールバック される

TM

が新しいトランザクションログを作 成し、古いトランザクションログを破 棄するかどうかを確認する間隔

[10.3.3.0

]

トランザクションのフェ ーズ

2

のタイムアウト時間。デフォ ルト

(0)

transaction-timeout x 2(

)

トランザクションログ

• 未完了のトランザクション情報を格納するログ

トランザクションログはバイナリ形式のため、直接見ること はできない

トランザクションログはサーバのデフォルト永続ストアに格 納される

デフォルト永続ストア

$DOMAIN/servers/<Server_Name>/data/store/default/_WLS_ <Server_Name>000000.DAT

• WLS12c

では

JDBC

ストアを使用可能

(

後述

)

サーバごとに設定変更可能

トランザクションログのダンプ

• $ java weblogic.transaction.internal.StoreTransactionLoggerImpl [-delete] <tlog_dir_path> <server_name>

• Options

• -delete … TLOG

からすべてのエントリを削除

• <tlog_dir_path> … TLOG

ストアディレクトリ

(=

デフォルト永続ストア

)

へのパス

• <server_name> …

サーバ名

+--- +

| Transaction Log Dump | | +---+ |

| Current time = Tue Mar 27 13:46:00 JST 2012 |

| Current directory = "C:¥work¥domains¥12c_domain¥." | +--- +

| Class Name = weblogic.transaction.internal.ResourceCheckpoint |

| Object = ResourceCheckpoint={{derbyDataSource_12c_domain, props={}}, {xeDataSource_12c_domain, props={}}} | +--- +

| Class Name = weblogic.transaction.internal.ServerTransactionImpl |

| Object = Xid=BEA1-002118629B698CC6CD64(1013226416),Status=Active,numRepliesOwedMe=0,numRepliesOwnedOthers= |

| 0,seconds since begin=33,seconds left=30,XAServerResourceInfo[xeDataSource_12c_domain]=(ServerResourceInfo |

| [xeDataSource_12c_domain]=(state=new,assigned=none),xar=null,re-Registered = false),XAServerResourceInfo[d |

| erbyDataSource_12c_domain]=(ServerResourceInfo[derbyDataSource_12c_domain]=(state=new,assigned=none),xar=n |

JDBC TLOG ストア (WebLogic Server 12c)

• TLog をデータベースに永続化可能

• TLog

用高信頼性ストレージの代替

障害復旧の容易性の向上

(

アプリケーションデータ

, JMS, TLOG

DB

に一括格納可能

)

デフォルト・ストアもしくは

JDBC

データソースを指定する

-

グローバルトランザクション非サポート

(

XA)

のデータソースを指定

-

ストア先の

DB

にアクセス出来ないと起動に失敗 する

トランザクションのモニタ

• トランザクションのモニタはサーバ・レベルで行う

トランザクション統計

(JTARuntimeMBean/JTATransactionStatisticsRuntimeMBean)

トランザクションログストア統計

(TransacitonLogStoreRuntimeMBean)

リソースごとのトランザクション統計

• XA (TransactionResourceRuntimeMBean)

XA

リソース

(NonXAResourceRuntimeMBean)

回復サービス

(RecoveryRuntimeMBean)

現在のトランザクション

(JTARuntimeMBean

JTATransactions

属性

)

トランザクションモニタ

実行中のトランザクション

トランザクションの手動解決

• 実行中のトランザクションは手動解決可能

障害対応用として使用

ローカルオプションとグローバルオプション

ローカル

:

該当のサーバリソースにのみ影響

グローバル

:

グローバルトランザクションに参加する全サーバに影響

トランザクションのステータスによって行える処理が異なる

ステータス 強制コミット 強制ロールバック ステータス 強制コミット 強制ロールバック

アクティブ ロールバック中

準備中 ロールバック完

準備完了 マーク済ロールバック

コミット中 トランザクションなし

ヒューリスティックな終了

• 2PC 処理中に RM による一方的な決定 (commit/rollback) が 行われた状態

インダウト中の

TM

障害や、トランザクション破棄、トランザ クションの手動解決などにより発生

ヒューリスティックな終了の状態によってスローされる例外 が異なる

ヒューリスティックな決定 説明

HeuristicRollback RM

トすると不整合発生

Rollback

してしまった。

TM

が他の

TX

ブランチをコミッ

HeuristicCommit RM Rollback

Commit

すると不整合発生してしまった。

TM

が他の

TX

ブランチを

HeuristicMixed

複数のリソースで

HeuristicRollback

HeuristicCommit

が発生 していることを

TM

が認識している状態

HeuristicHazard HeuristicMixed

が発生しているが、

TM

RM

のステータスを 識別できていない状態

障害時の復旧

- TRS( トランザクション回復サービス )

• WebLogic Server の TM ではトランザクション回復サー ビスを提供

サーバ起動時に自動的に実行

• TLog

を解析して未完了のトランザクションの解決を行う

• 2PC

処理を完了させる

(

フェーズ

1,

フェーズ

2)

ヒューリスティックな終了をログに記録

• サーバに障害が発生した場合の対応

ハードウェア障害に対応するには

TLog

の複製が必須

高性能

Disk or JDBC

ストア

(WLS12c)

クラスタ構成の場合はサービス移行

or

サーバ移行可能

TLog にアクセスできる状態でサーバを起動する

JTA トランザクション処理

Resource

ドキュメント内 Slide 1 (ページ 59-72)

関連したドキュメント