Your SlideShare is downloading. ×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

「2012年WebLogic Server勉強会の総まとめ」

2,201

Published on

2012年のWebLogic Server勉強会で取り上げたトピックスの中から「さすがWebLogic」機能を選んで総復習します。参加者からのアンケート結果や会場からの「経験談」など、Oracle ACEの山田貴裕さんと一緒に振り返ります。ライブならではの興奮(?)をお楽しみに! …

2012年のWebLogic Server勉強会で取り上げたトピックスの中から「さすがWebLogic」機能を選んで総復習します。参加者からのアンケート結果や会場からの「経験談」など、Oracle ACEの山田貴裕さんと一緒に振り返ります。ライブならではの興奮(?)をお楽しみに!

日本オラクル株式会社 Fusion Middleware事業統括本部 佐々木政和
Oracle ACE:
伊藤忠テクノソリューションズ株式会社 ミドルウェアサービス部 山田 貴裕 氏

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,201
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
77
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. OTNイブニングセミナー第31回WebLogic Server勉強会@東京2012年WebLogic Server勉強会総集編2012年12月14日日本オラクル株式会社1 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 2. 2012年の「WebLogic Server勉強会」総まとめ  目標 – 今年の勉強会の中から「さすがWebLogic」なポイントを総復習 – 参加者全員が情報を共有 – 2013年の「WebLogic Server勉強会」の目標設定(?)  進行 – 「さすがWebLogic」ベスト5を順番に発表 – ポイントを説明 – クイズにチャレンジ(全員参加型) – Oracle ACE、会場の経験者からの声(先人の知恵を共有)2 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 3. クラスタリング3 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 4. WebLogic Server基本クラスター・アーキテクチャ mydomain  クラスタの重要な機能 Server1 – 負荷分散 – クラスタ データソース HTTPリクエス Web EJB メンバにリクエスト トを負荷分散 コンテナ コンテナ を均等に分配 プロキシ RDBMS Server2 データソース Web EJB コンテナ コンテナ – フェイルオーバ – 障 害発生時も処理を別 のクラスタメンバで cluster1 継続する4 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 5. WebLogic Serverクラスタの設定 Weblogic Server ドメインの設定  クラスタの設定: WebLogicドメインで設定  プロキシの設定: プロキシ側で設定 HTTPサーバや mydomain ロードバランサ ドメイン設定 の設定 AdminServer Server1 設定ファイル データソース Web EJB コンテナ コンテナ プロキシ RDBMS Server2 データソース Web EJB コンテナ コンテナ cluster15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 6. HttpSessionインメモリレプリケーション プロキシプラグインの動作 クライアント – リクエストをWebLogic Serverにプロキシする – リクエストのURLまたはMIMEタイプ、もしくはそ の両方でプロキシ可能 – セッションを持つHTTPリクエストはセッションを プロキシ 格納しているサーバにルーティングする – クラスタ内の障害発生サーバにはプロキシしない HttpSession をクラスタ内の2つのサーバで保持 – セッション毎にプライマリ・セカンダリサーバが Server1 Server2 Server3 決定される 3 1 1 – サーバにはプライマリ・セカンダリセッションが 混在する セカンダリ プライマリ  メモリ消費量が増大する 2 2 3 cluster1 6 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 7. HttpSessionインメモリレプリケーション クライアント プライマリサーバは負荷分散によって初回リクエスト時に決定 – セカンダリサーバはレプリケーショ プロキシ ン・グループとマシン設定から プライマリ = Server3 セカンダリ = Server2 HttpSession生成時に決定 – セカンダリサーバへの同期は HttpSession#setAttribute()がトリガ になる Server1 Server2 Server3 setAttribute() – プライマリ・セカンダリサーバ情報は Cookieに埋め込まれる セカンダリ プライマリ cluster17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 8. HttpSessionインメモリレプリケーション プライマリ = Server3 セカンダリ = Server2 プライマリサーバに障害が発生する クライアントとセカンダリが昇格 – 別のサーバでセカンダリが再生成される プロキシプラグインによってセカンダリサーバにリクエストの振り替え プロキシられる – 振り替えはクライアントからの次のリクエ スト時 Server1 Server2 Server3 – プロキシプラグインはCookieのサーバリス トをもとにセカンダリサーバに接続 セカンダリ プライマリ プライマリ cluster18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 9. HttpSessionインメモリレプリケーション プライマリに昇格したサーバは クライアント Cookieを更新 – プライマリとセカンダリ情報が更新 されたCookieがクライアントに戻さ プロキシ れる プライマリ = Server2 セカンダリ = Server1 Server1 Server2 Server3 setAttribute() セカンダリ プライマリ cluster19 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 10. インメモリレプリケーションの考慮事項  リクエストのフェイルオーバはプラグインによって行われる – クライアントからのリクエスト到達までにプライマリ/セカンダリサーバ が共にダウンするとセッションは継続できない – セッションの消失が許容できない場合はインメモリレプリケーションは選 択不可 – IMRを使用する場合は3つ以上のサーバでクラスタを構成することを推奨  HttpSessionに格納するデータサイズが大きすぎるとレプリケーション でオーバーヘッドが発生する – HttpSessionに格納するデータは可能な限りコンパクトに  java.io.Serializableの実装も忘れずに – 同期のトリガはHttpSession#setAttribute()10 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 11. WebLogic Serverの トランザクション11 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 12. WebLogic ServerとJava EE WebLogic Server Web JNDI セキュリティ・レルム サー LDAP バ ATN ATZ Audit or Plug JNDI In Web EJB データソース Container JAAS Container Java EE JDBC JDBC RDBMS アプリケーショ ServJSF JSP le ンEJB JPA JMS t JTA RMI JMSサーバ トランザク ションマ Destination (Queue /Topic) ネージャ12 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 13. X/Open DTPモデル Application Program (AP) APはRMを介して APはトランザク リソースを使用 ション境界を指定 XA Resource Manager Transaction Resource Manager (RM) Manager Resource Manager (RM) (RM) (TM) TMとRMのインタフェース13 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 14. Java EEにおけるトランザクション仕様  JTA(Java Transaction API) – X/Open DTPモデルをベースにした分散トランザクションAPIトランザク ションマネージャとトランザクション参加者であるアプリケーション、 リソースマネージャが使用する標準インタフェースを提供  javax.transaction.TransactionManager - トランザクションマネージャ が使用  javax.transaction.UserTransaction – ユーザが使用  javax.transaction.xa.* - トランザクションマネージャ(TM)とリソースマ ネージャ(RM)間の規約  JTS (Java Transaction Service) – JTAをサポートするトランザクションマネージャ実装を提供OMG Object Transaction Service(OTS) 1.1 仕様に対応したJava実装のサービス14 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 15. WebLogic Serverのトランザクション設定 トランザクションサービス  トランザクションサービスはWebLogic Server起動時に開始される  トランザクションの設定 – ドメイン・レベルで設定を行う – ドメインで同じトランザクション設定を使用  トランザクションのモニタリング – サーバ・レベルでモニタリングを行う – 管理コンソール, WLST …  参加リソース(JDBCデータソースなど)の設定 – リソース・レベルで設定を行う15 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 16. トランザクションのモニタリング サーバ・レベルで監視16 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 17. TRS(トランザクション回復サービス)  WebLogic ServerのTMではトランザクション回復サービスを提供 – サーバ起動時に自動的に実行 – TLogを解析して未完了のトランザクションの解決を行う – 2PC処理を完了させる(フェーズ1, フェーズ2) – ヒューリスティックな終了をログに記録  サーバに障害が発生した場合の対応 – TLogにアクセスできる状態でサーバを起動する – ハードウェア障害に対応するにはTLogの複製が必須 – 高性能Disk or JDBCストア – クラスタ構成の場合はサービス移行orサーバ移行可能17 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 18. JDBC TLOGとは  従来はファイルストア(デフォルト・ストア)のみに格納で きたトランザクション・ログ(TLOG)を、より信頼性かつ利 便性の高いデータベースへ格納できるようにした機能18 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 19. Logging Last Resource(LLR) 2PC:prepare 2 5 2PC:commit XA Data Source 非XAリソース コミット 1 Commit 4 (ローカルTX) WebLogic Non-XA Data Application Server Source (TM) JMS XA コミットレコード 挿入 3 Connection LLR Table 2 519 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 20. 「ヒューリスティック」  2PC処理中にRMによる一方的な決定(commit/rollback)が行われた状 態 – インダウト中のTM障害や、トランザクション破棄、トランザクション の手動解決などにより発生 – ヒューリスティックな終了の状態によってスローされる例外が異なる ヒューリスティックな決定 説明 RMがRollbackしてしまった。TMが他のTXブランチをコミッ HeuristicRollback トすると不整合発生 RMがCommitしてしまった。TMが他のTXブランチを HeuristicCommit Rollbackすると不整合発生 複数のリソースでHeuristicRollbackとHeuristicCommitが発 HeuristicMixed 生していることをTMが認識している状態 HeuristicMixedが発生しているが、TMがRMのステータスを HeuristicHazard 識別できていない状態20 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 21. WebLogic Scripting Tool (WLST)とMBean21 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 22. WebLogic Scripting Tool(WLST)とは  WLSTはWebLogic ドメインの作成、管理、監視に使用できる – 構成情報、監視情報をあらわすMBeanを直接操作可能 – 構成情報: ConfigurationMBean / EditMBean – 監視情報: RuntimeMBean  Jythonベースのツール  用途に応じた起動モード – 対話モード/スクリプトモード/組み込みモード  WLSTではMBeanをダイレクトに操作するのでMBeanの理解を深める 必要があります22 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 23. JMX MBeanとは  JMX (Java Management Extensions) – Java環境の管理・監視のための標準仕様 – JCPのJSR-003(JMX ) と JSR-160(JMX Remote)で策定されている。  MBean (Managed Bean) – JMX仕様の中で定義されている管理/監視用のJavaコンポーネント – MBean Server経由で管理対象の状態を取得したり、操作や通知を行うイン ターフェースをもつ23 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 24. JMX MBeanのアーキテクチャInstrumentation Level 管理対象にアクセスするためのMBeanを指すレイアAgent Level MBeanのコンテナとなるMBean Serverを指すレイア。MBeanは、MBean Serverへ 登録することで利用可能になる。Distributed Services Level Connectorや Protocol Adapterを通じてMBean Serverと通信するためのインター フェースを指すレイア MBean Server JMX-compliant MBean Connector 管理対象 Management Application MBean 管理対象 HTTP Protocol Web Adapter MBean Browser 管理対象 Distributed Services Level Agent Level Instrumentation Level24 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 25. WebLogic ServerのMBeanサーバ MBeanサーバ種類 概要 MBeanサーバの ホストになるもの Domain Runtime ドメイン全体のサービス用の MBean。この MBean サーバは、 WebLogicの MBeanサーバ 管理対象サーバ上にある MBean への単一のアクセス ポイン 管理サーバ トとしても機能する。 Runtime 特定の WebLogic Server インスタンスのモニタ、実行時制御、 WebLogicドメイン中の MBeanサーバ およびアクティブなコンフィグレーションを表すMBeanを提供す 管理サーバと る MBeanサーバ。 管理対象サーバ Edit 保留中のコンフィグレーション MBean と、WebLogic Server WebLogicの MBeanサーバ ドメインのコンフィグレーションを制御するMBeanを提供する。 管理サーバ 変更のロック、保存、およびアクティブ化用の ConfigurationManagerMBean をエクスポーズする。 ドメインのコンフィグレーションを変更するには、この MBean サーバを使用する。 JVMのプラットフォーム JVMから提供されJVM 自体のモニタ情報を保持する MBean JVM MBeanサーバ サーバ。このMBeanサーバからWebLogicのRuntime MBean サーバを利用することも可能25 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 26. WLSTのユースケースを語ろう!(デプロイ例) デプロイなし WLST weblogic.Deployer ① distributeApplication() -distribute ① ④ 準備完了 ② startApplication() -start ⑥ ③ stopApplication() -stop ⑤ ② ③ ④ undeploy() -undeploy ② 管理 ③ ⑤ deploy() -deploy ② ③ ⑥ undeploy() -undeploy アクティブ ⑦ redeploy() -redeploy ⑦26 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 27. Active GridLink for RAC27 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 28. Active GridLink for RACのポイント 1. Universal Connection Pool(UCP)との統合 2. Single Client Access Name(SCAN)に完全対応 3. RACからの通知による高速接続フェールオーバ (Fast Connection Failover; FCF) 4. RACの負荷状況を考慮した実行時接続ロードバランシング (Runtime Connection Load Balancing; RCLB) 5. XAトランザクションのRACインスタンス・アフィニティ 6. WebセッションのRACインスタンス・アフィニティ(WLS12.1.1~)28 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 29. Active GridLink for RACの仕組み WebLogic Server Oracle Database(RAC) GridLinkデータソース インスタンス 1 (サービスA用) サービスA ONS Daemon 死活・負荷状況通知 ONS Daemon ONS client UCP-RAC インスタンス 2 モジュール  WebLogicデータソースと統合されたUCP(Universal Connection Pool)が、ONS(Oracle Notification Service)から通知さ れるRAC側の構成変更/負荷状況のイベントを元に、適切な接続の制御(ロードバランシング、フェールオーバ、ア フィニティ)をおこなう29 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 30. 実行時接続ロードバランシング(RCLB) 30% connections RAC Database Instance1 WebLogic I’m busy Connection Pool 10% connectionsApplication Instance2 I’m very busy I’m idle Instance3 60% connections 30 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 31. XAアフィニティ RAC Database EJB EJB1 Instance1 EJB2 WebLogic Server Instance2 EJB3 Transaction EJB4 Instance3 WebLogic Server Affinity Context31 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 32. Web セッション・アフィニティ WebLogic Server RAC Database JSP Instance1 Servlet JSP Instance2 Servlet JSP HttpSession Instance3 Affinity Context32 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 33. GridLink for RACを語ろう! WebLogic Server + Oracle RAC プロジェクト経験者33 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 34. JRockit Flight Recorder34 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 35. JRockit Flight Recorder + Mission Control Client JVMの挙動の常時記録と分析 ヒープメモリ利用率の増加傾向 ヒープメモリを占めるオブジェクトの割合と増加率 1. トラブルの確実な原因追究を 「遡って」 実施可能 2. 障害発生→改善のサイクルと手間を大きく短縮化35 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 36. JRockit Flight Recorder のアーキテクチャ ルールに基づく ダンプトリガー JRockit JVM WLDF Appli Appli JVM catioアプ catio Runti ダンプ依頼 n nリ me jrcmd イベント イベント ダンプ依頼 Flight Recorder Runtime WLST ダンプ依頼 循環バッファー 新しいデータ JRockit Mission Control ダンプ あふれたら移動 ダンプ解析 Thread Buffer Global Buffer あふれたら移動 古いデータ 廃棄 Disk File36 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 37. JRockit Flight Recorderの記録を開始、終了 コマンド行に指定する場合の例  一時データを/var/log/jfrディレクトリに格納し、最低でもアプリケー ション実行の最後の5分間分のデータを確保するようなデフォルト記 録を有効にする場合 – XX:FlightRecorderOptions=defaultrecording=true,disk=true,repository=/va r/log/jfr,maxage=5m  格納されるデータ量は絶対バイト数または有効期間のいずれかで設定 – 最大サイズの設定: maxsize=<size> 例: 5m k(キロバイト)、m(メガバイト)およびg(ギガバイト) – 最大有効期間の設定: maxage=<age> 例:10s s(秒)、m(分)、h(時)またはd(日)37 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 38. JRockit Flight Recorderの記録を開始、終了 jrcmdコマンドで開始、確認、終了する場合  jrcmd <pid> start_flightrecording duration=60s filename=myrecording.jfr  jrcmd <pid> check_flightrecordin  jrcmd <pid> stop_flightrecording recording=1 (パラメータはcheck_flightrecordinのステータス)38 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 39. Flight Recorderの実体は”イベント”にあり  Flight Recorderは、実行中に発生するイベントを記録  イベントは、関連付けられたデータを持つ個別のデータ・ポイント  特定の時間に発生したCPU負荷またはロックを待機中のスレッドなど、 実行中に発生する記録可能な現象  イベント・タイプはリレーショナル・キーによって参照され、JVMま たはアプリケーションでどのタイプのサブシステムに所属するかを示 す。  記録するデータ量を制御するためにイベント・タイプをコンフィグ レーション39 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 40. フライトレコーダのイベントの例 http://docs.oracle.com/cd/E22646_01/doc.40/b61448/app_events.htm#BABJJJGA 名前 説明 パス 例外スロー java/exception_throw ファイル読取り Java java/file_read FileInputStream/RandomAccessFile/FileCha nnelからの読取り ファイル書込み Java java/file_write FileInputStream/RandomAccessFile/FileCha nnelへの書込み Javaモニター・エントリ Javaモニターへのエントリ java/monitor_enter Javaモニター待機 Javaモニターを待機中 java/monitor_wait 新規TLAで割り当てられたオブジェクト オブジェクトが割り当てられ、新しいス java/object_alloc_in_new_tla レッド・ローカル領域(TLA)の取得が必要に なりました TLAの外部で割り当てられたオブジェクト オブジェクトがTLAの外部で(ヒープに直接) java/object_alloc_outside_tla 割り当てられました ソケット読取り Java Socket/SocketChannelからの読取り java/socket_read ソケット書込み Java Socket/SocketChannelへの書込み java/socket_write40 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.
  • 41. Flight Recorderについて語ろう! Flight Recorderを 使ってみたら…….41 Copyright © 2012, Oracle and/or its affiliates. All rights reserved.

×