WebLogic Server の TIPS 最近の事例から - CASE STUDY

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite & 1 Event

    WebLogic Server の TIPS 最近の事例から - CASE STUDY - Presentation Transcript

    1. <Insert Picture Here> WebLogic Server の TIPS 最近の事例から - CASE STUDY 日本オラクル(株) カスタマーサービス統括本部 テクニカルアナリスト 石塚 崇浩 2009年5月21日
    2. 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。ま た、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはでき ません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約 )するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラ クル製品に関して記載されている機能の開発、リリースおよび時期については、弊社 の裁量により決定されます。 Oracle、PeopleSoft、JD Edwards、及びSiebelは、米国オラクル・コーポレーション及びその子会社、関連会社の登録商 標です。その他の名称はそれぞれの会社の商標の可能性があります。 Copyright© 2009, Oracle. All rights reserved. 2
    3. Agenda • WebLogic Server の事例 • クラスタ環境 - サーバ再起動時の注意点 • Linux 環境固有 - メモリリーク既知問題 • JDBC 関連の事例 • 「非アクティブ接続タイムアウト」の活用法 • Oracle RAC と組み合わせる際のポイント • 高速接続フェイルオーバ利用時のポイント • JRockit の事例 • JRockit でのエンコード指定について • トラブルシューティング関連 お役立ち情報 Copyright© 2009, Oracle. All rights reserved. 3
    4. Agenda • WebLogic Server の事例 • クラスタ環境 - サーバ再起動時の注意点 • Linux 環境固有 - メモリリーク既知問題 • JDBC 関連の事例 • 「非アクティブ接続タイムアウト」の活用法 • Oracle RAC と組み合わせる際のポイント • 高速接続フェイルオーバ利用時のポイント • JRockit の事例 • JRockit でのエンコード指定について • トラブルシューティング関連 お役立ち情報 Copyright© 2009, Oracle. All rights reserved. 4
    5. クラスタ環境 - サーバ再起動時の注意点 • 質問 • 「インメモリレプリケーション」 を使用しているクラスタ環境で、メンテンスの為、 各サーバの順次再起動が必要です。サーバー再起動の間隔は 「できるだけ 短時間」 としたいのですが、 「アプリケーションは中断させたくありません」 。 どのように行えばよいでしょうか? • 回答 • 最長の「セッションタイムアウト時間」を間隔として、順次再起動して下さい。 Copyright© 2009, Oracle. All rights reserved. 5
    6. インメモリレプリケーションの特徴 • クライアントからのアクセス時 • HttpSessionオブジェクトを2つのサーバー上に生成 クライアント serverA クラスタ serverB HttpSession HttpSession Copyright© 2009, Oracle. All rights reserved. 6
    7. サーバー再起動後の状態 • serverA を再起動すると、残るオブジェクトは1つ・・ • このままでは、serverB の再起動はできない クライアント アプリケーションを中断 したくない!! クラスタ serverA serverB 早く再起動したい HttpSession 再起動 Copyright© 2009, Oracle. All rights reserved. 7
    8. アプリケーションを中断しない為には? • serverAへのレプリケーションが必要 • クライアントからのアクセスが必要 • いつアクセスされるかは予測不能 • セッションが失効した後は待つ必要はない クライアント serverA クラスタ serverB コピー HttpSession HttpSession タイムアウト Copyright© 2009, Oracle. All rights reserved. 8
    9. どのくらい待てばよいのか? • 一番最後に失効するオブジェクトを待てばよい • 最も遅いアクセスは? → serverA再起動の直前 • これにタイムアウト時間を加えた時刻が最後の失効 • 「serverA再起動」 + 「タイムアウト時間」で再起動可能 クライアント serverA クラスタ serverB タイムアウト Copyright© 2009, Oracle. All rights reserved. 9
    10. まとめ • 「インメモリレプリケーション」 の場合 • 再起動の間隔は、「最長セッションタイムアウト」の時間を確保 • 「JDBC」 の場合 • 再起動のタイミングは考慮しなくてよい • セッション情報はメモリ以外の場所にある為 Copyright© 2009, Oracle. All rights reserved. 10
    11. Linux 環境固有 - メモリリーク既知問題 • 事象 • Linux 環境の WebLogic Server 10.0 で OutOfMemoryError が発生しました。 JRockit の診断コマンドで確認するとSocket 関連のオブジェクトが増加しており、 GC 後も開放されていないようです。 • 回答 • 既知問題「CR346335」 に該当するかもしれません。問題の切り分けと、修正 パッチの適用をご検討下さい。 Copyright© 2009, Oracle. All rights reserved. 11
    12. 発生条件と原因 • 発生条件 • WebLogic Server のタイムアウト(CompleteMessageTimeout)などで、 ソケットのI/O がキャンセルされると発生 • 原因 • CR346335の既知問題 • Linux固有のマルチプレクサである「EpollSocketMuxer」のバグ • マルチプレクサとは • クライアントと WebLogic Server 間でソケット通信を効率よく行うた めの制御機能 Copyright© 2009, Oracle. All rights reserved. 12
    13. 対処法1/2 • 1. パッチ適用、もしくはアップグレード • 該当バージョン • WebLogic Server 9.2 GA, MP1 • WebLogic Server 10.0 GA, MP1 • 修正済みバージョン • WebLogic Server 9.2MP3, WebLogic Server 10.3 • WebLogic Server 9.2MP2 では発生しない • 別の修正が加えられている為 Copyright© 2009, Oracle. All rights reserved. 13
    14. 対処法2/2 • 2. マルチプレクサの切り替え • Javaコマンド引数に以下を指定 • -Dweblogic.MuxerClass=weblogic.socket.PosixSocketMuxer • 変更反映はスレッドダンプで確認可能 Copyright© 2009, Oracle. All rights reserved. 14
    15. 切り分け方法1/2 1. EpollSocketMuxer を使用しているか? • スレッドダンプの取得で確認可能 • kill -3 <pid> 出力例 \"ExecuteThread: '0' for queue: 'weblogic.socket.Muxer'\" id=24 idx=0x30 tid=8375 prio=5 alive, in native, blocked, daemon : at weblogic/socket/EPollSocketMuxer.processSockets() V(EPollSocket Muxer.java:153) : Copyright© 2009, Oracle. All rights reserved. 15
    16. 切り分け方法2/2 2. JRockit診断コマンド • 下記コマンドを定期的に取得 • jrcmd <pid> print_object_summary 出力例 --------- Detailed Heap Statistics: --------- : 0.9% 331k 14145 -4k java/util/ArrayList 0.8% 294k 12556 +0k java/lang/ref/WeakReference 0.7% 277k 3197 +0k [Ljava/util/Hashtable$Entry; 0.7% 274k 11723 +0k javax/xml/namespace/QName 0.7% 256k 1729 +8k weblogic/servlet/internal/ServletRequestImpl 0.7% 256k 1823 +7k weblogic/servlet/internal/MuxableSocketHTTP : 37487kB total --- Copyright© 2009, Oracle. All rights reserved. 16
    17. まとめ • Linux 環境の WebLogic Server にはバージョンによって CR346335の既知問題が内在 • 対処法はパッチの適用、もしくはアップグレード • 他のマルチプレクサへの切り替えなどで切り分けが可能 • 他のプラットフォームでは発生しない Copyright© 2009, Oracle. All rights reserved. 17
    18. Agenda • WebLogic Server の事例 • クラスタ環境 - サーバ再起動時の注意点 • Linux 環境固有 - メモリリーク既知問題 • JDBC 関連の事例 • 「非アクティブ接続タイムアウト」の活用法 • Oracle RAC と組み合わせる際のポイント • 高速接続フェイルオーバ利用時のポイント • JRockit の事例 • JRockit でのエンコード指定について • トラブルシューティング関連 お役立ち情報 Copyright© 2009, Oracle. All rights reserved. 18
    19. 「非アクティブ接続タイムアウト」の活用法 • 質問 • JDBC データソースの 「現在アクティブな接続の数」が増えていき、最終的 には 「接続の最大容量」 に達して接続できなくなります。接続のクローズ 漏れを疑っていますが、アプリケーションのデバッグに活用できる WebLogic Server の機能はないでしょうか? • 回答 • 「非アクティブ接続タイムアウト」の機能をご活用ください。 Copyright© 2009, Oracle. All rights reserved. 19
    20. 設定箇所 • 管理コンソールからの設定例 • 動的な変更が可能 サービス>JDBC>データソース>コンフィグレーション>接続プール>詳 細>「非アクティブ接続タイムアウト」 Copyright© 2009, Oracle. All rights reserved. 20
    21. 機能紹介 • 1. 接続を自動的にプールに戻す • 一定時間 close されていない (プールに戻されていない)接続を 自動的にプールに戻す機能 • 秒単位で指定 • デフォルト値は「0」となっており無効 • 注意点 • リークなのか本当に使用中なのかは考慮されない Copyright© 2009, Oracle. All rights reserved. 21
    22. 機能紹介 • 2. プールに戻す際にスタックトレースを出力 • アプリケーションの問題箇所の特定に有効 at test.caseStudy0521.dbaccess.getConnection(dbaccess.java:22) at test.caseStudy0521.dsLeakTest.doGet(dsLeakTest.java:16) <2009/05/18 1時25分37秒 JST> <Warning> <JDBC> <BEA-001153> <Forcibly releasing inactive connection “weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@49” back into the connection pool “ds1”, currently reserved by: java.lang.Exception at weblogic.jdbc.common.internal.ConnectionEnv.setup(ConnectionEnv.java:291) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:314) at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:292) at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:425) at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:316) at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:93) at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:106) at weblogic.jdbc.pool.Driver.connect(Driver.java:149) at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:642) at weblogic.jdbc.jts.Driver.connect(Driver.java:124) at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:339) at test.caseStudy0521.dbaccess.getConnection(dbaccess.java:22) at test.caseStudy0521.dsLeakTest.doGet(dsLeakTest.java:16) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) : .> Copyright© 2009, Oracle. All rights reserved. 22
    23. まとめ • 「非アクティブ接続タイムアウト」は接続リークの解消に活用可能 • スタックトレース出力を活用して、アプリケーションを修正 Copyright© 2009, Oracle. All rights reserved. 23
    24. Oracle RAC と組み合わせる際のポイント • 質問 • WebLogic Server と Oracle RAC を組み合わせる場合のポイントや注意点 を教えてください。 • 回答 • マルチデータソースを通して利用します。 • 詳しい内容はマニュアルを参照、、、 「WebLogic Server での Oracle RAC の使い方」 http://otndnld.oracle.co.jp/document/products/wls/docs103/jdbc_admin/oracle_rac. html • ですが、ここでポイントを抜粋して説明します!! Copyright© 2009, Oracle. All rights reserved. 24
    25. サポート対象となる構成 - WebLoigc Server 10gR3 の場合 • Oracle Database • 10gR2 (10.2.0.1 および以降の 10.2.x 向けパッチセット) • 11gR1 (11.1.0.6.0 および以降の 11.1.x 向けパッチセット) • Oracle 11g Thin Driver • 最新のパッチバージョンを推奨 • Oracle OCI Driver, BEA WebLogic Type4 Driver 等は非サポート • 最新情報はこちらで確認(バージョンによって異なります) http://e-docs.bea.com/platform/suppconfigs/configs103/103_over/supported_db.html Copyright© 2009, Oracle. All rights reserved. 25
    26. 基本構成は「マルチデータソース」 • フェイルオーバー&ロードバランスをマルチデータソースが提供 • XA/非 XA どちらでも利用可能 マルチデータソース RAC フェイル Data Node1 Source 1 アプリケ オーバー ーション & ロード Data バランス Source 2 RAC Node2 WebLogic Server Copyright© 2009, Oracle. All rights reserved. 26
    27. 各データソースの必須設定 - 抜粋 • 「予約時に接続をテスト」を有効化 • TestConnectionsOnReserve = \"true“ • TestTableName = “テスト用 SQL” • RAC ノード が使用可能かのテストに必須 • XA ドライバの場合は下記も必要 • 「トランザクション完了までXA接続を保持」 • KeepXAConnTillTxComplete = \"true“ • 「XA 再試行期間」 • XARetryDurationSeconds > 300秒 + トランザクションタイムアウト • JDBC ドライバの FAILOVER, LOAD_BALANCE は off に設定 • 全てのデータソースで同じ設定を実施 Copyright© 2009, Oracle. All rights reserved. 27
    28. 「マルチデータソース」以外の選択肢 • JDBC ドライバの「接続時フェイルオーバー」の活用 • (FAILOVER = on) (LOAD_BALANCE = off) • ドライバに閉じた機能であり WebLogic Server は関与しない • XA(グローバルトランザクション) では利用不可 • Oracle 11g RAC の新機能「XA のロードバランス」は、 WebLogic Server 10gR3 ではサポートされません。 • いかなる要件の場合も「マルチデータソース」が推奨構成 Copyright© 2009, Oracle. All rights reserved. 28
    29. まとめ • サポート対象のデータベースとドライバは限定されている • Oracle RAC 10g/11g • Oracle 11g Thin Driver • 「マルチデータソース」が提供するフェイルオーバー、ロード バランスの利用を推奨 Copyright© 2009, Oracle. All rights reserved. 29
    30. 高速接続フェイルオーバ利用時のポイント • 質問 • WebLogic Server 10.3で「高速接続フェイルオーバ」を利用したいと 考えています。 WebLogic Server で必要となる設定と注意点があり ましたら教えてください。 • 回答 • データソースのプロパティ(後述)を設定することで WebLogic Server でも FCF を活用できます。 • ここでは、ポイントを紹介させて頂きます。 Copyright© 2009, Oracle. All rights reserved. 30
    31. 高速接続フェイルオーバとは? • Fast Connection Failover ( FCF ) • Oracle Thin ドライバが提供する「 RAC イベント検知の仕組み」 • 「アプリケーションに依存しない」ので高速な障害検知が可能 Copyright© 2009, Oracle. All rights reserved. 31
    32. 必要な設定 1. ドライバ クラス名 を oracle.jdbc.pool.OracleDataSource に設定 • プール対応のデータソースを使用する 2. 「接続プール プロパティ」の追加 • ONSConfiguration=nodes=hostname1:port1,hostname2:port2 • このプロパティの設定で他のプロパティも自動的に設定される 3. 「予約時に接続をテスト」にチェック • 管理コンソールから設定。RACノードが使用可能かのテストに必須 4. 「アイドルプール接続を信頼する秒数」の無効化 • 管理コンソールから設定。デフォルトは10秒で有効な状態 • 0秒に設定し「無効」にする Copyright© 2009, Oracle. All rights reserved. 32
    33. 動作確認方法 • DBノードの切り替わり後の出力 • 「SQLException, ORA-17008: クローズされた接続です」が 出力されることを確認できればOK • 参考 • Oracle Database JDBC開発者ガイドおよびリファレンス 10g リリース2(10.2) 27 高速接続フェイルオーバー • アプリケーションによる認識 http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd /java.102/B19275-03/fstconfo.htm#CEGIJDBE Copyright© 2009, Oracle. All rights reserved. 33
    34. まとめ • FCF は Oracle Thin ドライバの機能です • WebLogic Server でもプロパティを渡すことで利用可能 • 現状、使用可能なバージョンは WebLogic Server 10.3のみ • 参考 • 「KROWN:133779」 • Oracle Technology Network(OTN) KROWN検索 http://otn.oracle.co.jp/support/productfaq/index.html Copyright© 2009, Oracle. All rights reserved. 34
    35. Agenda • WebLogic Server の事例 • クラスタ環境 - サーバ再起動時の注意点 • Linux 環境固有 - メモリリーク既知問題 • JDBC 関連の事例 • 「非アクティブ接続タイムアウト」の活用法 • Oracle RAC と組み合わせる際のポイント • 高速接続フェイルオーバ利用時のポイント • JRockit の事例 • JRockit でのエンコード指定について • トラブルシューティング関連 お役立ち情報 Copyright© 2009, Oracle. All rights reserved. 35
    36. JRockit でのエンコード指定について • 質問 • R26.3.0 で使用可能であった「-Dfile.encoding」が R27.1 以降の JRockit で有効になりません。 これは製品の不具合でしょうか? • 回答 • いいえ、file.encoding は本来「 Read Only 」のプロパティです。 OS のデフォルトエンコーディングの設定を利用してください。 Copyright© 2009, Oracle. All rights reserved. 36
    37. file.encoding は「 Read Only 」のプロパティ • Sun Java にて 「Read Only」 との判断 • JRockit でも R27.1 以降で準拠(Read Only に変更) • 参考 • Sun Developer NetWork - Bug Database • http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4163 515 • http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4397 522 Copyright© 2009, Oracle. All rights reserved. 37
    38. OS のデフォルトエンコーディング指定方法 • Windows の場合 • [コントロール パネル|地域 (または地域のオプション)] から言語 を選択 • UNIX の場合 • LANG 環境変数を設定 • 参考 • 「WebLogic Server コンテナのデフォルトのエンコーディングの指定 方法」 • http://otndnld.oracle.co.jp/document/products/wls/docs10 3/ja/relnotes_ja.html#1110200 Copyright© 2009, Oracle. All rights reserved. 38
    39. まとめ • エンコーディングの指定は、OSのデフォルトエンコーディングを使用 する • そもそも、デフォルト エンコーディングに頼らず、アプリケーション内 で明示することが好ましい。(ポータビリティの確保) Copyright© 2009, Oracle. All rights reserved. 39
    40. Q&A Copyright© 2009, Oracle. All rights reserved. 40
    41. Agenda • WebLogic Server の事例 • クラスタ環境 - サーバ再起動時の注意点 • Linux 環境固有 - メモリリーク既知問題 • JDBC 関連の事例 • 「非アクティブ接続タイムアウト」の活用法 • Oracle RAC と組み合わせる際のポイント • 高速接続フェイルオーバ利用時のポイント • JRockit の事例 • JRockit でのエンコード指定について • トラブルシューティング関連 お役立ち情報 Copyright© 2009, Oracle. All rights reserved. 41
    42. トラブルシューティング関連 お役立ち情報 • BEA サポートパターン • 典型的なトラブルのパターン別に、調査方法や対処方法をまとめたカタログ • 現場でのトラブルシューティングに活用してください! • http://support.oracle.co.jp/bea/support_patterns-ja/index.html • 「BEA WebLogic 製品のトラブルシューティング手法」 • WebLogic Trouble Shooting Methodology (TSM) • Oracle University で提供する教育コース(2日間) • 代表的な「サポートパターン」のトラブルシューティング手法を実習を通して習得 • http://education.oracle.com/ • 次回は 7/27 に開催 Copyright© 2009, Oracle. All rights reserved. 42
    43. Copyright© 2009, Oracle. All rights reserved. 43

    custom

    3471 views, 1 favs, 3 embeds more stats

    第二回 WebLogic Server 勉強会資料

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 3471
      • 3413 on SlideShare
      • 58 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 40
    Most viewed embeds
    • 56 views on http://blogs.oracle.com
    • 1 views on http://74.125.153.132
    • 1 views on http://www.javaoracleblog.com

    more

    All embeds
    • 56 views on http://blogs.oracle.com
    • 1 views on http://74.125.153.132
    • 1 views on http://www.javaoracleblog.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories

    Groups / Events