WebLogic Server Transaction Basics

100 %
0 %
Information about WebLogic Server Transaction Basics
Technology

Published on February 27, 2014

Author: OracleMiddleJP

Source: slideshare.net

Description

「WebLogic Server Transaction Basics」

分散トランザクションの基本概念からWebLogic Serverでのトランザクション設定やモニタ方法をご紹介します。また、トランザクション回復サービスなどの障害発生時の対応のポイントも紹介します。

日本オラクル  オラクルユニバーシティ 岡田 大輔

WebLogic Server Transaction Basics 日本オラクル株式会社 オラクルユニバーシティ 岡田 大輔 2014年 2月26日 1 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので す。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み 込むことはできません。以下の事項は、マテリアルやコード、機能を提供す ることをコミットメント(確約)するものではないため、購買決定を行う際 の判断材料になさらないで下さい。オラクル製品に関して記載されている機 能の開発、リリースおよび時期については、弊社の裁量により決定されます 。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 2 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Agenda  分散トランザクションとは? – Java Transaction API – 分散トランザクションとは?  WebLogic Serverのトランザクション設定 – ドランザクションの設定 – モニタリング – リソースの設定 3 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

分散トランザクションとは? 4 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

トランザクションとは?  データストアに対して"all or nothing"手法で永続化を行う処理 – 分散環境においてデータの整合性を保つためには必須  ACID特性を満たす – Atomicity(原子性) – 処理は成功か失敗のいずれか – Consistency(一貫性) – 処理前後ではデータの一貫性が保たれる – Isolation(独立性) – 同時に実行される複数の処理は互いに干渉しない – Durability(永続性) – 確定したトランザクションの結果は確実に永続化される 5 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Java EEにおけるトランザクション仕様  JTA(Java Transaction API) – X/Open DTPモデルをベースにした分散トランザクションAPI – トランザクションマネージャとトランザクション参加者であるアプリケーション、 リソースマネージャが使用する標準インタフェースを提供  javax.transaction.* - トランザクションマネージャとトランザクション参加者との規約  javax.transaction.xa.* - トランザクションマネージャ(TM)とリソースマネージャ(RM)間の規約  JTS (Java Transaction Service) – JTAをサポートするトランザクションマネージャ実装を提供 – OMG Object Transaction Service(OTS) 1.1 仕様に対応したJava実装のサービス 6 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

X/Open DTPモデル Application Program (AP) APはRMを介して リソースを使用 APはトランザク ション境界を指定 XA Resource Manager Resource(RM) Manager Resource Manager (RM) (RM) TMとRMをトランザクション情報を交換 7 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Transaction Manager (TM)

トランザクションマネージャとリソースマネージャ  トランザクションマネージャ(TM) – アプリケーションに代わってグローバルトランザクションの管理を行うサーバソフトウェアコ ンポーネント – アプリケーションからのグローバルトランザクションの開始/終了要求に基づいて、そのトラン ザクションに関与する全てのリソースマネージャと通信してトランザクションを制御  2フェーズコミット(2PC)を制御 – WebLogic Serverではインスタンスごとにトランザクションマネージャが存在する  リソースマネージャ(RM) – データやプロセスへのアクセスを提供するインタフェースおよび関連ソフトウェアであり、ト ランザクション処理機能とアクセスの永続化機構を有する 8 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

ローカルトランザクションとグローバルトランザクション ローカルトランザクション  ローカルトランザクション – トランザクションマネージャが介在しないトランザクション – リソースマネージャが直接トランザクションを制御する  非XAドライバを使ったDB接続  非XAのJMS接続ファクトリを使用したJMSメッセージング 9 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

ローカルトランザクションとグローバルトランザクション グローバルトランザクション  グローバルトランザクション(分散トランザクション) – トランザクションマネージャが介在するトランザクション – TMがJMSやXA DataSourceなどトランザクションに関与する複数のRMを調整して、 トランザクションの制御を行う  1TXでDB, JMSにアクセスする (2PC)  1TXで2つ以上のDBにアクセスする(2PC)  TXがEJBコンテナによって開始された場合(EJBコンテナはサーバ上のTMを利用) 10 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

2フェーズコミット (2PC)  2PCプロトコルは複数のRMをまたぐ単一トランザクションを調整す る方法 – PrepareフェーズとCommitフェーズと呼ばれる2つのフェーズを用いてトランザク ション特性を満たす  トランザクションのコミット処理 (UserTransaction.commt()/TransactionManager.commit()) により2PCが開始され る  コーディネータはグローバルトランザクションを操作し、サブコーディネータ は自身のサーバに関連したトランザクション・ブランチを操作する 11 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

WebLogic Serverの2PCプロセス  WebLogic Serverでは2PCを3つのステップで処理 – Pre-Prepareフェーズ  トランザクションが完了する前後でアプリケーションがコールバックを受け取れるように するためにコールバックオブジェクト(javax.transaction.Synchronization)をトランザクショ ンマネージャに登録する – Prepareフェーズ(フェーズ1)  グローバルトランザクションに参加しているリソースがトランザクションブランチを処理 する準備を行う – Commitフェーズ(フェーズ2)  グローバルトランザクションに参加しているリソースが実際にトランザクションブランチ を処理する 12 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

2PC 処理の流れ フェーズ1 (prepare) ②prepare prepared データベース1 リソース マネージャ2 データベース2 リソース マネージャ1 データベース1 リソース マネージャ2 トランザクション マネージャ リソース マネージャ1 データベース2 ①commit アプリケーション TLOG committed ③commit トランザクション マネージャ フェーズ2 (commit) 13 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. committed

WebLogic Serverの トランザクション設定 14 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

JTA トランザクション処理 Application Application Transaction Server Manager Resource Factory Transactional Resource Connection XAResource begin getConnection getTransactionalResource getXAResource enlistResource new new new start doWork commit commit prepare commit 15 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

WebLogic Serverでのトランザクション処理 トランザクション・サービス JNDI XIDを割当 トランザクションが開始さ れると関与するリソース・ マネージャを管理 XID EJBコンテナ1 トランザクション 境界を決定 (begin - commit) 16 UserTransaction ut = ic.lookup("java:comp/UserTransaction") try { ut.begin(); ejb1.callA(); ejb2.callB(); ut.commit(); } catch (Exception e) { commitはTM try { に対して発行 ut.rollback(); } catch(SystemException se) { throw new Exception(se.getMessage()); } } Copyright © 2014, Oracle and/or its affiliates. All rights reserved. データソース1 XIDを受け取ったリ ソースはTMと通信 @TransactionAttribute (value=REQUIRED) public void callA() { // … } CMTではTransactionAttributeの 値によってグローバル・トラン ザクションに参加 EJBコンテナ2 @TransactionAttribute (value=SUPPORTS) public void callB() { // … } データベース1 データソース2 データベース2

トランザクションの設定  トランザクションサービスはWebLogic Server起動時に開始される – トランザクションの設定  ドメイン・レベルで設定を行う – ドメインで同じトランザクション設定を使用 – WLS12.1.2はクラスタ単位でも設定可能 – トランザクションのモニタリング  サーバ・レベルでモニタリングを行う – 管理コンソール, WLST … – 参加リソース(JDBCデータソース, JMSなど)の設定  リソース・レベルで設定を行う 17 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

トランザクション設定 ドメイン設定 トランザクション開始からフェーズ1完了まで の持続時間。この時間を超えるとTXはタイム アウトし、ロールバックされる TMが新しいトランザクションログを作成し、 古いトランザクションログを破棄するかどうか を確認する間隔 [10.3.3.0~]トランザクションのフェーズ2 のタイムアウト時間。デフォルト(0)は transaction-timeout x 2(秒) 18 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

クラスタのトランザクション設定 WebLgic Server 12.1.2 TIPS: WLS12.1.2ではクラスタ単位で JTAを構成可能。 クラスタのJTA設定はドメイン のJTA設定よりも優先される 19 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

トランザクションログ  未完了のトランザクション情報を格納するログ – トランザクションログはバイナリ形式のため、直接見ることはできない – トランザクションログはサーバのデフォルト永続ストアに格納される  デフォルト永続ストア: $DOMAIN/servers/<Server_Name>/data/store/default/_WLS_ <Server_Name>000000.DAT  WLS12cではJDBCストアを使用可能(後述)  サーバごとに設定変更可能 20 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

JDBC TLOG ストア WLS 12.1.1 ~  TLogをデータベースに永続化可能 – TLog用高信頼性ストレージの代替 – 障害復旧の容易性の向上 (アプリケーションデータ, JMS, TLOGをDBに一括格納可能) デフォルト・ストア もしくは JDBC TLog永続ストア用のデータソースを指定する - グローバルトランザクション非サポート(非XA)のデータソースを指定 - ストア先のDBにアクセス出来ないと起動に失敗する 21 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

トランザクションのモニタ  トランザクションのモニタはサーバ・レベルで行う – トランザクション統計(JTARuntimeMBean/JTATransactionStatisticsRuntimeMBean) – トランザクションログストア統計(TransacitonLogStoreRuntimeMBean) – リソースごとのトランザクション統計  XA (TransactionResourceRuntimeMBean)  非XAリソース (NonXAResourceRuntimeMBean) – 回復サービス(RecoveryRuntimeMBean) – 現在のトランザクション (JTARuntimeMBeanのJTATransactions属性) 22 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

トランザクションモニタ ロールバックしたトランザクションは原因別 の総数が表示される 23 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

実行中のトランザクション 24 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

トランザクションの手動解決  実行中のトランザクションは手動解決可能 – 障害対応用として使用 – ローカルオプションとグローバルオプション  ローカル: 該当のサーバリソースにのみ影響  グローバル: グローバルトランザクションに参加する全サーバに影響 – トランザクションのステータスによって行える処理が異なる ステータス 強制コミット 強制ロールバック ステータス 強制コミット 強制ロールバック アクティブ ○ ロールバック中 ○ 準備中 ○ ロールバック完了 ○ ○ マーク済ロールバック ○ 準備完了 コミット中 ○ トランザクションなし コミット完了 25 ○ ○ 不明 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. ○ ○

ヒューリスティックな終了  2PC処理中にRMによる一方的な決定(commit/rollback)が行われた状態 – インダウト中のTM障害や、トランザクション破棄、トランザクションの手動解決 などにより発生 – ヒューリスティックな終了の状態によってスローされる例外が異なる ヒューリスティックな決定 HeuristicRollback RMがRollbackしてしまった。TMが他のTXブランチをコミットすると不整合発生 HeuristicCommit RMがCommitしてしまった。TMが他のTXブランチをRollbackすると不整合発生 HeuristicMixed 複数のリソースでHeuristicRollbackとHeuristicCommitが発生していることをTMが認識している状態 HeuristicHazard 26 説明 HeuristicMixedが発生しているが、TMがRMのステータスを識別できていない状態 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

障害時の復旧 TRS(トランザクション回復サービス)  WebLogic ServerのTMではトランザクション回復サービスを提供 – サーバ起動時に自動的に実行 – TLogを解析して未完了のトランザクションの解決を行う  2PC処理を完了させる(フェーズ1, フェーズ2)  ヒューリスティックな終了をログに記録  サーバに障害が発生した場合の対応 TLogにアクセスできる状態でサーバを起動する – ハードウェア障害に対応するにはTLogの複製が必須  高性能Disk or JDBCストア(WLS12c) – クラスタ構成の場合はサービス移行orサーバ移行可能 27 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

トランザクションに参加可能なリソース リソース トランザクション開始者 トランザクション参加者 XAResource Java Client ○ CORBA Client ○ RMI Object ○ EJB (BMT) ○ EJB (CMT) ○ ○ JDBC (DataSource) ○ ○ ○ JMS ○ ○ ○ J2EE Connector ○ ○ ○ Servlets/JSP ○ ○ ○ 外部リソース 28 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. ○ (if hosted on WLS)

EJB(CMT)のトランザクション管理  EJB(CMT)ではEJBコンテナがトランザクション境界を設定 – トランザクション属性で制御可能(@TransactionAttribute)  指定可能なトランザクション属性 – コンテナ – コンポーネント間のトランザクション クライアント(TXなし) クライアント(TXあり) NEVER △ × 例外発生 NOT SUPPORTED △ △ クライアントTXはSuspend SUPPORTS △ ○ × 例外発生 ○ REQUIRED ○ ○ REQUIRES NEW ○ ○ クライアントTXはSuspend TransactionAttribute MANDATORY ×: 呼び出し不可 △:トランザクションなし ○:トランザクションあり 29 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

JDBCデータソースのトランザクション対応  分散トランザクションに参加する場合は原則としてデータソース作成時に 『XA対応ドライバ』を使用する  非XAドライバを使用する場合は『グローバルトランザクションのサポート』 を選択 TIPS: 非XAドライバでグローバルトランザク ションを使用する場合は、Connectionの取得 前にトランザクションを開始する 30 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Logging Last Resource(LLR)  トランザクションの整合性を保ちつつ2PCトランザクションの最適化 を実現 – 2PCに参加するリソースのXA処理のオーバーヘッドを低減 – +「2PCのエミュレート」よりも高い整合性  LLRの注意点 – LLR用のデータソースは非XAドライバを使用 – LLR表は自動生成される(表名の接頭辞は指定可能) – LLR表を格納するDBはWLSよりも先に起動しておく  LLR表を格納するDBにアクセス出来ないと起動に失敗する – LLR使用時もTLogは必要 31 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

LLR処理 2PC:Prepare 5 2 2PC:Commit XA Data Source 1 4 Commit WebLogic Server (TM) Application コミットレコード 挿入 Copyright © 2014, Oracle and/or its affiliates. All rights reserved. Non-XA Data Source JMS XA Connection 3 LLR Table 32 非XAリソース コミット (ローカルTX) 2 5 32

ドメイン間トランザクションの設定  ドメイン間に渡るグローバルトランザクションを実行するにはドメイ ンのセキュリティ設定を追加する – ドメイン間でのセキュリティコンテキストの伝播のため  クロスドメインセキュリティを設定  ドメイン間の信頼(セキュリティ相互運用モード) – 考慮事項  ドメイン間トランザクションを参加するリソース名は一意である必要がある 33 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

JTAのDebug属性 属性 説明 DebugJTAXA weblogic.transaction.xa XAリソースのトレース DebugJTANonXA weblogic.transaction.nonxa 非XAリソースのトレース DebugJTA2PC weblogic.transaction.twopc すべての2フェーズ・コミット処理のトレース DebugJTATLOG weblogic.transaction.tlog トランザクション・ロギング情報のトレース DebugJTARecovery weblogic.transaction.recovery リカバリ情報のトレース DebugJTAMigration weblogic.transaction.migration トランザクション・ログの移行に関する情報のトレース DebugJTALifecycle weblogic.transaction.lifecycle トランザクション・サーバーのライフサイクル(初期化、中断、再開、 停止)に関する情報のトレース DebugJTALLR weblogic.transaction.llr すべてのロギング・ラスト・リソース処理のトレース DebugJTAHealth 34 スコープ weblogic.transaction.health トランザクション・サブシステムの状態に関する情報のトレース Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

まとめ  WebLogic Serverのトランザクションはドメイン単位で設定する – WLS12.1.2はクラスタ単位でも設定可能 – 2PCトランザクション処理がある場合は、考慮事項が増える  TXタイムアウト, TLOGストア, 障害回復, … – モニタリングはサーバ単位で行う  プログラミングモデルは原則としてJava EE準拠 – リソース毎に必要なトランザクション設定を行う 35 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

オラクルユニバーシティから のお知らせ 36 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Oracle Universityからのお知らせ  WebLogic Serverの管理方法を体系的に学習したい方に最適な研修 コースをご提供しています。 – Classroomトレーニングだけでなく、Live Virtual Classや『Oracle トレー ニング・オンデマンド』など多様な受講形態から選択いただけます。 37 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

ミドルウェア Oracle WebLogic Server 12c: 管理 I Oracle WebLogic Server 12c の運用管理スキルをしっかり習得 待望のWebLogic Server 12c(12.1.2)対応研修がいよいよ提供開始です。 このコースでは、アプリケーション・サーバー管理者がOracle WebLogic Server 12cのインストールおよび設定方法を習得することがで きます。管理コンソールやコマンドラインツール(WLST)などを使用してドメインを構成する方法やJava EEアプリケーションをサー バーにデプロイする方法についても説明します。さらに、Oracle WebLogic Server のプロキシとしてOracle HTTP Serverを設定し、 WebLogic Serverクラスタによるアプリケーションのフェイルオーバーとロードバランシングをサポートする方法など、環境構築に必要 なスキルとWebLogic Serverのモニタリングやログ情報の収集など運用に必要なスキルを実機演習を通して習得できます。さらに、 Oracle WebLogic Server 12cで強化されたActive GridLink for RACの構成方法やWebLogic Server 12.1.2の新機能である動的クラスタなど 注目の新機能もカバーします。 ■Oracle WebLogic Server概要 ■ドメインの作成 ■Administration Console ■ドメインのモニタリング ■アプリケーションのデプロイメント ■WebLogic Server セキュリティ ■ドメインのバックアップおよびリカバリ ■WebLogic Serverのインストールおよびパッチ適用 ■サーバーの起動および停止 ■JDBCデータソースの構成 ■ノードマネージャ ■WebLogic Serverクラスタリング ■トランザクション・サービスのコンフィグレーション 受講前提条件 ・Linux の基本的な操作方法の理解 ・Java EE の基礎知識(サーブレットや JSP など) ※推奨 対象者 ・Oracle WebLogic Server 管理者 ・Javaアプリケーション開発者 ・アーキテクト コース内容 コース日程 受講料 38 5日間 日程の詳細は Oracle University Webサイト にてご確認ください。 定価¥374,850(税込) Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 開催日程 ■ お問い合わせください ※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。

39 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

40 Copyright © 2014, Oracle and/or its affiliates. All rights reserved.

Add a comment

Related presentations

Related pages

A WebLogic Server Basic - Oracle

A.1 WebLogic Server Basic Overview. WebLogic Server Basic is a license-constrained version of WebLogic Server that is available in licenses for the ...
Read more

「WebLogic Server Transaction Basics ... - blogs.oracle.com

日本オラクルオラクルユニバーシティの岡田さんが分散トランザクションの基本概念から WebLogic Serverでの ...
Read more

Understanding WebLogic Server Applications and ... - Oracle

The following sections provide an overview of WebLogic Server applications and basic concepts. WebLogic Server implements Java 2 Platform, Enterprise ...
Read more

Application Server - Oracle WebLogic Server | Oracle

Oracle WebLogic Server Multitenant Increase Density and Lower TCO. Drive a three-to-one consolidation ratio by virtualizing at the application platform layer.
Read more

Introduction to Oracle WebLogic - Concordia University

Introduction to Oracle WebLogic Presented by: ... • Oracle WebLogic Web Server ... – Provide Transaction support and manage Transaction state and lifetime
Read more

Business Transaction Management - Oracle

Business Transaction Management . ... WebLogic Server Management Pack Enterprise Edition; Management Pack for Non-Oracle Middleware; Overview Data Sheets, ...
Read more

Fusion Middleware, Weblogic Server and JBoss ...

Weblogic Server Basic Concepts For ... Do you know what all technical things going's on behind where your transaction get ... Weblogic SSL Basics; Weblogic ...
Read more

BEA WebLogic Server and WebLogic Express 8.1 ... - Oracle

BEA WebLogic Server and WebLogic Express 8.1 Documentation. BEA e-docs and dev2dev converge! The BEA documentation Web site is now closely integrated with ...
Read more