WebLogic Server
トラブルシューティングの
ポイント
日本オラクル株式会社
オラクルユニバーシティ
岡田 大輔
2013年12月19日

1

Copyright © 2013, Oracle and/or its affilia...
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので
す。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み
込むことはできません。以下の事項は、マテリアルやコード、機能を提供す
ることをコミットメント(確約)する...
はじめに
よくあるWebLogic Serverのトラブル …
 WebLogic Serverがスローダウン / ハングする
– データソースの接続先のデータベースからの応答が悪くなる
– プロセスのCPU使用率が100%近くなり応答が返ら...
トラブルシューティングに
必要な情報を集める

4

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
トラブル発生時に集めるべき情報は?
手がかりとなる情報を集める
 WebLogic Serverの設定情報
 WebLogic Serverのログ情報
 JVMのスレッドダンプ
 診断イメージキャプチャ
 Flight Recorde...
トラブル発生時に集めるべき情報は?
設定情報
 WebLogic Serverの構成情報は、ドメイン単位で保持される
トランザクション

セキュリティ

管理サーバー

ログ etc

6

Copyright © 2013, Oracle ...
トラブル発生時に集めるべき情報は?
ログ情報

TIPS: 拡張フォーマットの設定方法 ( [サーバー]-[ロギング]-[HTTP] ▼詳細 )
1. フォーマットを 拡張 に変更
2. 拡張ロギング・フォーマットのフィールド を指定
date...
トラブル発生時に集めるべき情報は?
ログ情報
 サーバーの標準出力ログ
– サーバーログの一部は

標準出力にも出力される

– スレッドダンプやJVMの

GCログなどが出力される

運用環境では標準出力はファイル
にリダイレクトを推奨

...
Tips: サーバーの標準出力のリダイレクト
startWebLogic.sh(cmd)を編集

 サーバーの標準出力のリダイレクトは環境変数 WLS_REDIRECT_LOG

を指定する

WLS_REDIRECT_LOGの設定を追記

...
サーバーログのフォーマット

 サーバーログの属性の一部は標準出力にも表示される
– Formatted Timestamp, Severity, SubSystem, Message ID, Message Text

####<Forma...
サーバーログの重大度
NOTICE以上のメッセージはデフォルトでドメインログに転送される
Severity

デバッグメッセージ(Debug=ONの場合)
通常の処理を通知するために使用する低レベルの情報メッセージ

NOTICE

重要度の高...
Tips: Message IDの確認方法
WebLogic Server Error Message Reference

12

Copyright © 2013, Oracle and/or its affiliates. All rig...
Tips: デバッグ情報
サーバー単位で設定可能

デバッグ属性を選択して
有効化 or 無効化

デバッグ出力例: DebugJDBCSQL(コンソール:weblogic→jdbc→sql→DebugJDBCSQL/WLST ServerDe...
トラブル発生時に集めるべき情報は?
GCログ
 GC … JVMによる使用済みメモリ領域を回収する機構
– GCは高コストな処理
 スローダウンやハングの原因になる場合もある

 メモリ管理方式はJVM実装によって異なる

Perm

1...
Tips: GCログオプション
説明

HotSpot

JRockit

GCログ

-verbose:gc

-verbose:gc

GCログ(詳細)

-XX:+PrintGCDetails

-Xverbose:gcreport
-X...
トラブル発生時に集めるべき情報は?
Javaスレッドダンプ
 スレッドダンプとは

スレッドダンプ取得時は
一定間隔で複数回取得

– JVMで実行中のスレッドのスナップショット
 スレッドがどんな処理を実行しているのか?

– JVMの標...
スレッドダンプの取得方法

 OS
– CTRL + BREAK / wlsvc -dump -svcname:service-name (Windows)
– kill -3 <pid> (Linux/UNIX)

 WLST
– Thr...
スレッドダンプの取得例
JRockitの場合

複数のサーバーを起動している場合は
–lv オプションでクラスの完全名と
起動オプションを表示してpidを識別

ファイルへのリダイレクトは追記(>>)
の方が便利。一定間隔で複数回取得

18
...
スレッドダンプ出力例(1)
JRockitのスレッドダンプ
"[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" id=55 idx=0...
スレッドダンプ出力例(2)
JRockitのスレッドダンプ
"[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'" id=51 idx=0...
スレッドダンプの解析
ThreadLogic

2つのスレッドダンプの
差分や長時間実行中の
スレッド情報を表示可能

21

Copyright © 2013, Oracle and/or its affiliates. All rights...
トラブル発生時に集めるべき情報は?
WLDF診断イメージキャプチャ
 WLDF診断イメージキャプチャはWebLogic Serverの状態を単一のアー

ティファクトとして出力

– コンフィグレーション、ログ情報、ワークマネージャ、サブシス...
診断イメージキャプチャに含まれるもの
必要なものはすべて含まれる

イメージキャプチャの出力先:
<DOMAIN>/servers/<server_name>/
logs/diagnostic_images

23

Copyright © 2...
診断イメージキャプチャの取得方法
管理コンソールを使った取得

次のイメージキャプチャが
取得できるまでの
ロックアウト時間

24

Copyright © 2013, Oracle and/or its affiliates. All ri...
Tips: WebLogic Server診断フレームワーク
WebLogic Server全体を監視、診断するための機能
監視データを生成する仕組み

インスツルメンテーション
データパブリッシャ

データプロバイダ
(MBean)
構成情報...
障害時に集めるべき情報は?
必要なときに情報が得られるか?
 スレッドダンプやGCログはトラブル解決に有益だが…
– トラブルが発生した瞬間に取得できるわけではない
– 必要な情報が得られない場合もある

 Java Flight Reco...
Java Flight Recorder
全ては記録される

WebLogic Server
jrcmd/jcmd

Applicatio
n Application

ダンプ依頼

WLST
ダンプ依頼

イベント

ダンプ依頼

WebLo...
WebLogic ServerとFlight Recorderの連携
 WebLogic ServerはFlight Recorderとの連携可能
– サーバーで発生したイベントをFlight Recorderに送信
– WLDF診断イメージ...
Flight Recorderで記録できる情報

各GCフェーズの詳細情報
やヒープの増加傾向情報
Servlet/JSP毎、EJB毎等の主要コン
ポーネントの呼び出しイベント等

各スレッド毎に発生したイベントを記録
(1イベントあたり50~...
WebLogic Server イベントの取得
サーバーの診断ボリュームを設定

デフォルトの診断ボリュームは低(Low)

30

Copyright © 2013, Oracle and/or its affiliates. All rig...
Flight Recorder記録の開始
3つの記録方法
 JRockit
– 起動オプション


-XX:FlightRecorderOptions=disk=true -XX:StartFlightRecording=filename=...
Flight Recorder記録の開始
Mission Control
■ Flight記録のテンプレート(組み込み) - JRockit
•通常のプロファイリング

標準的なプロファイリング・イベント。低レベルのイベントやリソース消費が大き...
Flight Recorder記録
Mission Controlでの表示

33

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
WebLogic Serverイベント
Mission Controlでの表示

34

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
WebLogic Serverイベント
スレッドごとに発生したイベントを可視化

35

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
JRockit Mission Control
その他の機能: コンソール

Tips: JMXコンソールは
Java Mission Consoleでも使用可能

36

Copyright © 2013, Oracle and/or its...
JRockit Mission Control

その他の機能: MemoryLeak Detector

37

Copyright © 2013, Oracle and/or its affiliates. All rights reser...
まとめ
トラブル発生時に情報を集めるには?
 WebLogic Serverが提供する様々な情報を活用する
– 設定情報
– ログ情報

– JVMのスレッドダンプ
– 診断イメージキャプチャ
– Flight Recorder記録

やっぱ...
まとめ
情報収集ツールの比較
利点
ログ

サーバーで発生するイベントを時系列で取
得可能。トラブル発生時の初期情報の収集
に最適。
サーバログ … サーバのアクティビティ
GCログ … GCの発生頻度
HTTPログ … ユーザリクエスト

情...
オラクルユニバーシティから
のお知らせ

40

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Oracle Universityからのお知らせ
 WebLogic Serverの管理方法を体系的に学習したい方に最適な研修コー

スをご提供しています。

– Classroomトレーニングだけでなく、Live Virtual Class...
Oracle WebLogic Server 11g の学習は
Oracle トレーニング・オンデマンドで!
いまなら無償体験版を視聴可能です!

Oracle WebLogic Server 11g: 管理
コースを90日間いつでも何度でも。...
ミドルウェア

Oracle WebLogic Server 12c: 管理 I
Oracle WebLogic Server 12c の運用管理スキルをしっかり習得

待望のWebLogic Server 12c(12.1.2)対応研修がいよ...
キャンペーンのご案内1:
OCJP Gold SE 7 試験受験を検討されている皆さまに朗報です!
 OCJP Gold SE 7 試験限定 再受験可能受験チケット発売
万が一試験に不合格になってしまっても同一試験に再挑戦可能な受験チケットを...
キャンペーンのご案内2:
OCJP Silver SE 7 試験受験を検討されている皆さまにも朗報です!
 OCJP Silver SE 7 試験成績 上位 20 名様 に受験チケットプレゼント
期間中にOCJP Silver 試験に合格され...
46

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
47

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
Upcoming SlideShare
Loading in...5
×

WebLogic Serverトラブルシューティングのポイント

3,107

Published on

「WebLogic Serverトラブルシューティングのポイント」
WebLogic Serverのトラブルシューティングのために必要となる情報(サーバーログやGCログ、スレッドダンプなど)の収集方法やツールの活用方法の解説
日本オラクル オラクルユニバーシティ 岡田 大輔

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

No Downloads
Views
Total Views
3,107
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
96
Comments
0
Likes
11
Embeds 0
No embeds

No notes for slide

Transcript of "WebLogic Serverトラブルシューティングのポイント"

  1. 1. WebLogic Server トラブルシューティングの ポイント 日本オラクル株式会社 オラクルユニバーシティ 岡田 大輔 2013年12月19日 1 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  2. 2. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するもので す。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み 込むことはできません。以下の事項は、マテリアルやコード、機能を提供す ることをコミットメント(確約)するものではないため、購買決定を行う際 の判断材料になさらないで下さい。オラクル製品に関して記載されている機 能の開発、リリースおよび時期については、弊社の裁量により決定されます 。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 2 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  3. 3. はじめに よくあるWebLogic Serverのトラブル …  WebLogic Serverがスローダウン / ハングする – データソースの接続先のデータベースからの応答が悪くなる – プロセスのCPU使用率が100%近くなり応答が返らない  Javaヒープ使用量が徐々に増え続けていく  WebLogic Serverがクラッシュする (Coreを吐く)  WebLogic Serverが起動しない 原因の特定には適切な情報収集が不可欠! 3 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  4. 4. トラブルシューティングに 必要な情報を集める 4 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  5. 5. トラブル発生時に集めるべき情報は? 手がかりとなる情報を集める  WebLogic Serverの設定情報  WebLogic Serverのログ情報  JVMのスレッドダンプ  診断イメージキャプチャ  Flight Recorder 5 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  6. 6. トラブル発生時に集めるべき情報は? 設定情報  WebLogic Serverの構成情報は、ドメイン単位で保持される トランザクション セキュリティ 管理サーバー ログ etc 6 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. JDBC データソース 診断モジュール 永続ストア JMSモジュール JMSサーバー 管理対象サーバー ログ etc 管理対象サーバー ログ etc 設定ファイル トランザクション クラスタ 管理対象サーバー ログ etc マシン NM アプリケーション ドメイン マシン NM $DOMAIN/config
  7. 7. トラブル発生時に集めるべき情報は? ログ情報 TIPS: 拡張フォーマットの設定方法 ( [サーバー]-[ロギング]-[HTTP] ▼詳細 ) 1. フォーマットを 拡張 に変更 2. 拡張ロギング・フォーマットのフィールド を指定 date time c-ip s-ip cs-method cs-uri cs-uri-query sc-status bytes time-taken  WebLogic Serverのログファイル – サーバーログ … <DOMAIN>/servers/<server_name>/logs/<server_name>.log  WebLogic Serverのアクティビティが記録されるログファイル。 – ドメインログ … <DOMAIN>/servers/<admin_server>/logs/<domain_name>.log  サーバーログを集約したもの。障害調査ではあまり使わない。 – HTTPログ … <DOMAIN>/servers/<server_name>/logs/access.log  クライアントからのアクセスを記録。拡張フォーマットを使うとリクエスト処 理時間も取得可能 7 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  8. 8. トラブル発生時に集めるべき情報は? ログ情報  サーバーの標準出力ログ – サーバーログの一部は 標準出力にも出力される – スレッドダンプやJVMの GCログなどが出力される 運用環境では標準出力はファイル にリダイレクトを推奨 8 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  9. 9. Tips: サーバーの標準出力のリダイレクト startWebLogic.sh(cmd)を編集  サーバーの標準出力のリダイレクトは環境変数 WLS_REDIRECT_LOG を指定する WLS_REDIRECT_LOGの設定を追記 9 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  10. 10. サーバーログのフォーマット  サーバーログの属性の一部は標準出力にも表示される – Formatted Timestamp, Severity, SubSystem, Message ID, Message Text ####<Formatted Timestamp> <Severity> <SubSystem> <Machine Name> <Server Name> <Thread ID> <User ID> <Transaction ID> <Diagnostic Context ID> <Raw Time value> <Message ID> <Message Text> – Transation IDやDiagnostic Context IDが存在しない場合は山括弧のみ出力 ####<2013/12/15 9時26分37秒 JST> <Notice> <WebLogicServer> <DAOKADA-JP> <AdminServer> <Main Thread> <<WLS Kernel>> <> <> <1347927997496> <BEA-000365> < サーバー状態がRUNNINGに変化しました。> 10 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  11. 11. サーバーログの重大度 NOTICE以上のメッセージはデフォルトでドメインログに転送される Severity デバッグメッセージ(Debug=ONの場合) 通常の処理を通知するために使用する低レベルの情報メッセージ NOTICE 重要度の高いINFOメッセージ ○ WARNING 問題のあるオペレーションまたはコンフィグレーションがあったが、通常のオペレーションに支 障は生じない ○ ERROR ユーザ エラーが発生したことを示す。システムまたはアプリケーションでは、割り込みやサー ビスの限定的な低下を起こすことなくエラーに対処できる ○ CRITICAL システム エラーまたはサービス エラーが発生したことを示す。システムを回復できるが、サー ビスの一時的な損失や永久的な低下が発生する場合がある ○ ALERT 11 診断フレームワークからのメッセージ INFO 高 TRACE DEBUG 低 説明 システムの特定のサービスだけが使用不能の状態にある。自動回復を実行できない。この問題を 解決するには管理者がすぐに措置を講じる必要がある ○ EMARGENCY サーバが使用不能な状態にある。この重大度は、重大なシステム障害または問題があることを示 す ○ Copyright © 2013, Oracle and/or its affiliates. All rights reserved. ドメインログ
  12. 12. Tips: Message IDの確認方法 WebLogic Server Error Message Reference 12 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  13. 13. Tips: デバッグ情報 サーバー単位で設定可能 デバッグ属性を選択して 有効化 or 無効化 デバッグ出力例: DebugJDBCSQL(コンソール:weblogic→jdbc→sql→DebugJDBCSQL/WLST ServerDebugMBean) ####<2013/12/15 15時43分43秒 JST> <Debug> <JDBCSQL> <DAOKADA-JP> <ManagedServer1> <[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <BEA100036DDE372208547105> <1b7e5955c26b51de:29038235:142f4fe00cd:-8000-000000000000003e> <1387089823815> <BEA-000000> <[[weblogic.jdbc.wrapper.JTAConnection_weblogic_jdbc_wrapper_XAConnection_oracle_jdbc_driver_LogicalConne ction-hrDataSource-4, oracle.jdbc.driver.LogicalConnection@2460cd3]] prepareStatement(SELECT EMPLOYEE_ID, COMMISSION_PCT, DEPARTMENT_ID, EMAIL, FIRST_NAME, HIRE_DATE, JOB_ID, LAST_NAME, MANAGER_ID, PHONE_NUMBER, SALARY FROM EMPLOYEES WHERE (FIRST_NAME LIKE ? OR LAST_NAME LIKE ?))> 13 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  14. 14. トラブル発生時に集めるべき情報は? GCログ  GC … JVMによる使用済みメモリ領域を回収する機構 – GCは高コストな処理  スローダウンやハングの原因になる場合もある  メモリ管理方式はJVM実装によって異なる Perm 14 Eden Survivor Survivor New space Copyright © 2013, Oracle and/or its affiliates. All rights reserved. [HotSpot] Old space [JRockit] Nursery Old space
  15. 15. Tips: GCログオプション 説明 HotSpot JRockit GCログ -verbose:gc -verbose:gc GCログ(詳細) -XX:+PrintGCDetails -Xverbose:gcreport -Xverbose:gcpause GCのタイムスタンプ出力 -XX:+PrintGCTimeStamps -Xverbosetimestamp GCログをファイル出力 -Xloggc:<file_name> -Xverboselog:<file_name> (サーバー起動からの経過時間) [gcpause][Tue May 21 10:42:45 2013][04868] [YC#25] [---] [gcpause][Tue May 21 10:42:45 2013][04868] [YC#25] [con] [gcpause][Tue May 21 10:42:45 2013][04868] [YC#25] [pau] [gcpause][Tue May 21 10:42:45 2013][04868] [YC#25] [con] [gcpause][Tue May 21 10:42:45 2013][04868] [OC#1] [---] [gcpause][Tue May 21 10:42:45 2013][04868] [OC#1] [con] [gcpause][Tue May 21 10:42:45 2013][04868] [OC#1] [pau] [gcpause][Tue May 21 10:42:45 2013][04868] [OC#1] [con] 15 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 26.105 ms (1236.973000-1236.999000) 0.002 ms (1236.973000-1236.973000) 26.062 ms (1236.973000-1236.999000) 0.008 ms (1236.999000-1236.999000) 45.613 ms (1236.999000-1237.045000) 0.004 ms (1236.999000-1236.999000) 44.730 ms (1236.999000-1237.044000) 0.810 ms (1237.044000-1237.045000) YC YC:PreGC YC:Main YC:PostGC OC:PreGC OC:Main OC:PostGC OC
  16. 16. トラブル発生時に集めるべき情報は? Javaスレッドダンプ  スレッドダンプとは スレッドダンプ取得時は 一定間隔で複数回取得 – JVMで実行中のスレッドのスナップショット  スレッドがどんな処理を実行しているのか? – JVMの標準機能  WebLogic Serverの障害解析以外でも活用可能  標準出力(/標準エラー出力)に出力される スレッドダンプはシステムに負荷をかけずに情報収集できる最良のツール 16 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  17. 17. スレッドダンプの取得方法  OS – CTRL + BREAK / wlsvc -dump -svcname:service-name (Windows) – kill -3 <pid> (Linux/UNIX)  WLST – ThreadDump()  JVM – jstack <pid> (HotSpot) Tips: Javaプロセスのpidは jps コマンドで確認 (HotSpot/Jrockitどちらでも使用可能) – jrcmd <pid> print_threads (JRockit) 17 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  18. 18. スレッドダンプの取得例 JRockitの場合 複数のサーバーを起動している場合は –lv オプションでクラスの完全名と 起動オプションを表示してpidを識別 ファイルへのリダイレクトは追記(>>) の方が便利。一定間隔で複数回取得 18 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  19. 19. スレッドダンプ出力例(1) JRockitのスレッドダンプ "[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" id=55 idx=0xc8 tid=7484 prio=2 alive, waiting, native_blocked, daemon -- Waiting for notification on: weblogic/work/ExecuteThread@0x0000000007F5DC78[fat lock] at jrockit/vm/Threads.waitForNotifySignal(JLjava/lang/Object;)Z(Native Method) アイドルスレッド at java/lang/Object.wait(J)V(Native Method) at java/lang/Object.wait(Object.java:485) at weblogic/work/ExecuteThread.waitForRequest(ExecuteThread.java:205) ^-- Lock released while waiting: weblogic/work/ExecuteThread@0x0000000007F5DC78[fat lock] at weblogic/work/ExecuteThread.run(ExecuteThread.java:226) at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method) -- end of trace "[ACTIVE] ExecuteThread: '21' for queue: 'weblogic.kernel.Default (self-tuning)'" id=73 idx=0x110 tid=9956 prio=2 alive, native_blocked, daemon at dummy/web/Dummy1Servlet.doGet(Dummy1Servlet.java:38)[optimized] at javax/servlet/http/HttpServlet.service(HttpServlet.java:731)[optimized] 実行中のスレッド at javax/servlet/http/HttpServlet.service(HttpServlet.java:844)[optimized] … (途中略) … at weblogic/work/ExecuteThread.execute(ExecuteThread.java:256)[optimized] at weblogic/work/ExecuteThread.run(ExecuteThread.java:221) at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method) -- end of trace 19 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  20. 20. スレッドダンプ出力例(2) JRockitのスレッドダンプ "[ACTIVE] ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)'" id=51 idx=0xb8 tid=14820 prio=2 alive, native_blocked, daemon at sun/security/provider/SecureRandom.engineNextBytes(SecureRandom.java:208)[optimized] ^-- Holding lock: sun/security/provider/SecureRandom@0x000000001BB2DC10[thin lock] at java/security/SecureRandom.nextBytes(SecureRandom.java:433)[inlined] at java/util/UUID.randomUUID(UUID.java:159)[inlined] ブロック中の at dummy/ejb/Dummy2Bean.processQuery(Dummy2Bean.java:48)[optimized] スレッド ^-- Holding lock: java/security/SecureRandom@0x000000001BB2DBD0[fat lock] (ロック保持中) … (途中略) … at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method) -- end of trace "[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'" id=47 idx=0xa8 tid=7528 prio=2 alive, blocked, native_blocked, daemon -- Blocked trying to get lock: java/security/SecureRandom@0x000000001BB2DBD0[fat lock] ブロックされた at jrockit/vm/Threads.waitForUnblockSignal()V(Native Method) スレッド at jrockit/vm/Locks.fatLockBlockOrSpin(Locks.java:1411)[optimized] (ロック取得待ち) at jrockit/vm/Locks.lockFat(Locks.java:1512)[optimized] at jrockit/vm/Locks.monitorEnterSecondStageHard(Locks.java:1054)[optimized] … (途中略) … Tips: スレッドダンプの解析はツールを活用 at weblogic/work/ExecuteThread.run(ExecuteThread.java:221) at jrockit/vm/RNI.c2java(JJJJJ)V(Native Method) -- end of trace 侍 , Thread Dump Analyzer , ThreadLogic 20 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  21. 21. スレッドダンプの解析 ThreadLogic 2つのスレッドダンプの 差分や長時間実行中の スレッド情報を表示可能 21 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. グループ定義とアドバイザリ定義 に従ってスレッド情報を表示可能 (定義はカスタマイズ可能)
  22. 22. トラブル発生時に集めるべき情報は? WLDF診断イメージキャプチャ  WLDF診断イメージキャプチャはWebLogic Serverの状態を単一のアー ティファクトとして出力 – コンフィグレーション、ログ情報、ワークマネージャ、サブシステム(JMS, JDBC, EJB, JNDI)のイメージやJVM情報(ヒープ状態、スレッドダンプ)など  トラブル原因の解明に必要な情報をまとめて取得可能 – 手動もしくはルールに基づいた自動キャプチャが可能 22 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  23. 23. 診断イメージキャプチャに含まれるもの 必要なものはすべて含まれる イメージキャプチャの出力先: <DOMAIN>/servers/<server_name>/ logs/diagnostic_images 23 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  24. 24. 診断イメージキャプチャの取得方法 管理コンソールを使った取得 次のイメージキャプチャが 取得できるまでの ロックアウト時間 24 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  25. 25. Tips: WebLogic Server診断フレームワーク WebLogic Server全体を監視、診断するための機能 監視データを生成する仕組み インスツルメンテーション データパブリッシャ データプロバイダ (MBean) 構成情報や解析に必要な情報を統合的に取得する仕組み イメージキャプチャ 25 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 監視対象の設定と通知の仕組み 監視と通知 監視データを取得する仕組み 監視データを 画面表示する 仕組み アクセサ ロガー ハーベスタ データをファイルとして出力する仕組み アーカイバ
  26. 26. 障害時に集めるべき情報は? 必要なときに情報が得られるか?  スレッドダンプやGCログはトラブル解決に有益だが… – トラブルが発生した瞬間に取得できるわけではない – 必要な情報が得られない場合もある  Java Flight Recorder – トラブル解決に必要な情報を常時記録可能 (=本番環境でも低負荷) – JVMからアプリケーション(+WLS)まで幅広い情報を記録 トラブルの確実な原因を 「遡って」 追跡可能に トラブルの発生から改善までのサイクルと手間を大きく短縮に 26 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  27. 27. Java Flight Recorder 全ては記録される WebLogic Server jrcmd/jcmd Applicatio n Application ダンプ依頼 WLST ダンプ依頼 イベント ダンプ依頼 WebLogic イベント JVM Runtime イベント Flight Recorder Runtime 診断イメージ キャプチャ WLDF ルールに基づくダンプトリガー Rotating Buffer 新しいデータ ダンプ依頼 あふれたら移動 Mission Control ダンプ Global Buffer Thread Buffer ダンプ解析 あふれたら移動 古いデータ Disk File 27 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. FlightRecorder.jfr
  28. 28. WebLogic ServerとFlight Recorderの連携  WebLogic ServerはFlight Recorderとの連携可能 – サーバーで発生したイベントをFlight Recorderに送信 – WLDF診断イメージキャプチャにFlight Recorder記録を含める WLDF イベント イメージキャプチャ 28 Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Flight Recorder
  29. 29. Flight Recorderで記録できる情報 各GCフェーズの詳細情報 やヒープの増加傾向情報 Servlet/JSP毎、EJB毎等の主要コン ポーネントの呼び出しイベント等 各スレッド毎に発生したイベントを記録 (1イベントあたり50~150byte程度) 29 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  30. 30. WebLogic Server イベントの取得 サーバーの診断ボリュームを設定 デフォルトの診断ボリュームは低(Low) 30 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  31. 31. Flight Recorder記録の開始 3つの記録方法  JRockit – 起動オプション  -XX:FlightRecorderOptions=disk=true -XX:StartFlightRecording=filename=<出力ファイル名 >,settings=<テンプレートファイル名>,maxage=<ディスク上に保持する期間> – jrcmdコマンド  jrcmd <jrockit_pid> start_flight_recording settings=<テンプレートファイル名>  HotSpot – jcmdコマンド  HotSpotは 起動オプションに以下を追加 -XX:+UnlockCommercialFeatures -XX:+FlightRecorder jcmd <pid | main class> <command | PerfCount.print | -f filename>  Mission Control – JVMブラウザ → フライト記録の開始… →テンプレート選択 31 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  32. 32. Flight Recorder記録の開始 Mission Control ■ Flight記録のテンプレート(組み込み) - JRockit •通常のプロファイリング 標準的なプロファイリング・イベント。低レベルのイベントやリソース消費が大きい一 部のイベントは除外。オーバヘッドは低い。 •ロックを含むプロファイリング 通常のプロファイリング・テンプレートに低レベルのロック・イベントが含む。オー バーヘッドは大きい。 •例外を含むプロファイリング 通常のプロファイリング・テンプレートにスタック・トレースを伴う例外イベントを含 む。オーバーヘッドは通常よりも大きい。 •リアル・タイム ガベージ・コレクション情報などメモリー関連の情報に重点を置く。オーバーヘッドは 考慮不要。 ■Flight記録のテンプレート(組み込み) - HotSpot •Continuous(連続) 本番環境で連続的に使用しても問題のない低オーバーヘッド構成 (通常は1%未満の オーバーヘッド) •Profiling(プロファイリング) プロファイリング用の低オーバーヘッド構成 (通常は2%程度のオーバーヘッド) 32 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  33. 33. Flight Recorder記録 Mission Controlでの表示 33 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  34. 34. WebLogic Serverイベント Mission Controlでの表示 34 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  35. 35. WebLogic Serverイベント スレッドごとに発生したイベントを可視化 35 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  36. 36. JRockit Mission Control その他の機能: コンソール Tips: JMXコンソールは Java Mission Consoleでも使用可能 36 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  37. 37. JRockit Mission Control その他の機能: MemoryLeak Detector 37 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  38. 38. まとめ トラブル発生時に情報を集めるには?  WebLogic Serverが提供する様々な情報を活用する – 設定情報 – ログ情報 – JVMのスレッドダンプ – 診断イメージキャプチャ – Flight Recorder記録 やっぱりトラブルシューティングも総合力。 様々な情報を活用してトラブル解決に役立てましょう 38 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  39. 39. まとめ 情報収集ツールの比較 利点 ログ サーバーで発生するイベントを時系列で取 得可能。トラブル発生時の初期情報の収集 に最適。 サーバログ … サーバのアクティビティ GCログ … GCの発生頻度 HTTPログ … ユーザリクエスト 情報が各ログファイルに分散しているため 一元的に情報を把握しにくい ・Enterprise Managerを使用すると横串検 索可能 Javaスレッドダンプ JVMで行われているスレッド処理のスナッ プショットを取得。低負荷のため本番環境 でも取得可能。 スレッドダンプはテキスト情報のため必要 に応じてデータ加工の必要あり ・侍, ThreadLogicなど各種ツールを活用 WLDFイメージキャプチャ サーバーの設定、モニタ情報、ログ、ス レッドダンプをまとめて取得可能。WLDF モジュールを設定すればルールに基づいて 自動的にイメージキャプチャを取得可能。 イメージキャプチャ取得のオーバーヘッド とディスクサイズを考慮する必要アリ 自動キャプチャにはWLDFモジュールを構 成する必要がある Flight Recorder 39 考慮事項 JVM+WebLogic Serverで発生するイベント 詳細レベルで取得。Mission Controlを使用 してGUIベースで解析可能。 常時Flight 記録を取得する場合はディスク サイズを考慮する必要アリ Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  40. 40. オラクルユニバーシティから のお知らせ 40 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  41. 41. Oracle Universityからのお知らせ  WebLogic Serverの管理方法を体系的に学習したい方に最適な研修コー スをご提供しています。 – Classroomトレーニングだけでなく、Live Virtual Classや『Oracle トレーニ ング・オンデマンド』など多様な受講形態から選択いただけます。 41 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  42. 42. Oracle WebLogic Server 11g の学習は Oracle トレーニング・オンデマンドで! いまなら無償体験版を視聴可能です! Oracle WebLogic Server 11g: 管理 コースを90日間いつでも何度でも。 新時代のラーニングソリューション •インターネット経由でお好きな時間にお好きな場所で • 実際の講義をそのまま収録してストリーミング配信 •教室と同じ演習環境を6日間使用可能 •担当講師による Q&A •eKit(電子媒体テキスト)付き 42 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  43. 43. ミドルウェア 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の新機能である動的クラスタなど注目の新機能もカバ ーします。 コース内容 受講前提条件 対象者 コース日程 受講料 43 ■Oracle WebLogic Server概要 ■ドメインの作成 ■Administration Console ■ドメインのモニタリング ■アプリケーションのデプロイメント ■WebLogic Server セキュリティ ■ドメインのバックアップおよびリカバリ ■WebLogic Serverのインストールおよびパッチ適用 ■サーバーの起動および停止 ■JDBCデータソースの構成 ■ノードマネージャ ■WebLogic Serverクラスタリング ■トランザクション・サービスのコンフィグレーション ・Linux の基本的な操作方法の理解 ・Java EE の基礎知識(サーブレットや JSP など) ※推奨 ・Oracle WebLogic Server 管理者 ・Javaアプリケーション開発者 ・アーキテクト 5日間 日程の詳細は Oracle University Webサイト にてご確認ください。 定価¥374,850(税込) Copyright © 2013, Oracle and/or its affiliates. All rights reserved. 開催日程 ■2014/1/20(月) – 1/24(金) トレーニングキャンパス赤坂 ※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。
  44. 44. キャンペーンのご案内1: OCJP Gold SE 7 試験受験を検討されている皆さまに朗報です!  OCJP Gold SE 7 試験限定 再受験可能受験チケット発売 万が一試験に不合格になってしまっても同一試験に再挑戦可能な受験チケットを特 別販売します。この機会にJava認定資格に挑戦してみてください! – 対象試験:  Java SE 7 Programmer II (1Z0-804) / Upgrade to Java SE 7 Programmer(1Z0-805) – 販売期間: 2013年12月2日(月) ~ 2014年2月28日(金)  枚数限定(200枚)販売につき予定数に達した場合は販売を終了します。予めご了承ください お問い合せは オラクルユニバーシティ まで http://www.oracle.com/jp/education/ Tel: 0120-155-092 44 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  45. 45. キャンペーンのご案内2: OCJP Silver SE 7 試験受験を検討されている皆さまにも朗報です!  OCJP Silver SE 7 試験成績 上位 20 名様 に受験チケットプレゼント 期間中にOCJP Silver 試験に合格された成績上位者20名様にOCJP Gold SE 7資格試験 に使用可能な受験チケットをプレゼントします。この機会にJava認定資格に挑戦し てみてください! – 対象者:  2014年1月1日(水)~3月31日(月)までに、Java SE 7 Programmer I (1Z0-803) 試験に合格し Oracle Certified Programmer, Silver SE 7 資格を取得された方 対象者が20名を超える場合は抽選となります。予めご了承ください。 お問い合せは オラクルユニバーシティ まで http://www.oracle.com/jp/education/ Tel: 0120-155-092 45 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  46. 46. 46 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  47. 47. 47 Copyright © 2013, Oracle and/or its affiliates. All rights reserved.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×