Comments
Description
Transcript
WebLogic Server
第82回 夜な夜な! なにわオラクル塾 WebLogic Server勉強会@大阪 <Insert Picture Here> WebLogic Server勉強会へようこそ 日本オラクル株式会社 2012年5月9日 「WebLogic Server勉強会」とは By developers, for developers ユーザ企業、システムインテグレータ、ベンダーのそれぞれの立場を 超えたWebLogic開発者同士の繋がり WebLogicアプリケーション開発者のための勉強会 スキルアップ 先人の成功・失敗談を共有 開発者間のネットワーキング Team WebLogic 「やっぱり、WebLogic!」キャンペーン実施 「WebLogicつながり」の輪を広げよう! 最新情報 Oracle Technology Network: http://www.oracle.com/technetwork/jp/middleware/weblogic/community/index.html Copyright ©2011, Oracle. All rights reserved. 2 アジェンダ (2012年5月9日) 18:30-18:35 オープニング 「WebLogic Server 12c の基本動作をデモで確認!」 18:35-19:20 WebLogic Server の概要をクイックレビューした後に、実際にインストー ルや構成定義の方法など、初心者がまず知っておくべき基礎をしっかりデモ を交えて解説します。 日本オラクル Fusion Middleware 事業統括本部 ビジネス推進本部 佐々木 政和、若林 夏樹 19:20-19:30 休憩 「JRockit Flight Recorder を活用しよう!」 19:30-20:10 20:10-20:30 Jrockit の概要を説明した後、障害解析の事例から JRockit Flight Recorder を使った解析手順を解説します。 Quiz, Q&A Copyright ©2011, Oracle. All rights reserved. 3 次回のご案内 2012年夏、開催予定 アジェンダ調整中: ご要望はアンケートに! Lightning Talksセッション 皆様の体験談、自慢話(失敗談も)募集中 5分程度で情報共有 過去のネタ(例) メモリ不足でバグを疑う前に メモリーリークとの戦い 管理系コマンドのTIPS など アンケートに○を書いてください。詳細は別途ご相談 Copyright ©2011, Oracle. All rights reserved. 4 第82回 夜な夜な! なにわオラクル塾 WebLogic Server勉強会@大阪 <Insert Picture Here> デモで確認! WebLogic Server 12c の基本動作 2012年5月9日 日本オラクル株式会社 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメン ト(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さ い。オラクル製品に関して記載されている機能の開発、リリースおよび時期につい ては、弊社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 Copyright© 2012, Oracle. All rights reserved. 2 アジェンダ • はじめに: • Oracle WebLogic Serverクイックレビュー • Chapter • Chapter • Chapter • Chapter • Chapter • Chapter 0: 1: 2: 3: 4: 5: デモシナリオ インストール ドメインの作成と管理サーバの起動 管理対象サーバの起動 JDBCデータソースの作成 アプリケーションのデプロイ Copyright© 2012, Oracle. All rights reserved. 3 目標 • Oracle WebLogic Serverの運用管理の基本(インストール、 各種設定、アプリケーション起動・停止など)を理解しよう! • ステップ1 (クイックレビュー) • Oracle WebLogic Serverの概要を理解する • ステップ2 • Oracle WebLogic Serverのインストールからアプリケーションのデプロイ • ステップ3 • Oracle WebLogic Serverのツールを活用してデプロイ • アプリケーションの稼動状況の分析 Copyright© 2012, Oracle. All rights reserved. 4 WebLogic Serverクイックレビュー Oracle WebLogic Serverの特長 [参考] Oracle WebLogic Serverのライセンスについて Oracle WebLogic Serverのアーキテクチャ基礎 Copyright© 2012, Oracle. All rights reserved. 5 Oracle WebLogic Serverとは • Oracle WebLogic Serverは、Java EE 5/6 完全準拠のWebアプリケーションサーバ製品 • ミッション・クリティカルシステムで多くの採用実績 • Oracle JRockit (JVM) がバンドルされており、特にIAサーバで高い性能を発揮 • 単にJava EEの仕様に準拠しているというだけでなく、実際の開発や運用で役立つ様々な機能を 統合的に提供 端末 プレゼンテーション層 HTTP HTTPS PDA、携帯 HTTP Webブラウザ リ ス ナ ビジネスロジック層 データアクセス層 Java プログラム Java プログラム Java プログラム Java プログラム Java プログラム Java プログラム JavaEE コンテナ Oracle WebLogic Server Oracle JRockit JVM Copyright© 2012, Oracle. All rights reserved. データベース層 RDB RDB RDBMS Oracle Database 6 WebLogic ServerとJava EE WebLogic Server セキュリティ・レルム JNDI ATN Plug In ATZ LDAP Auditor JNDI Web Container EJB Container JAAS Java EE アプリケーション Servlet JSF JSP EJB JDBC JPA JDBC データソース Web サーバ RDBMS JTA JMS RMI JMSサーバ Destination トランザクション マネージャ (Queue /Topic) Copyright© 2012, Oracle. All rights reserved. 7 開発者と運用担当者の役割 • アプリケーション開発者: • Java EE 標準仕様に則って実装を行う • APサーバが提供する拡張機能を使うかどうかを検討する • 運用環境が固定されていれば適用できるケースもあり • WebLogic Server運用担当者: • 開発したアプリケーションが適切に動作するように WebLogic Serverを設定する • アプリケーションが使用するリソースは何か? • 非機能要件は? Copyright© 2012, Oracle. All rights reserved. 8 開発者と運用担当者のスコープ 運用担当者 WebLogic Server Plug In セキュリティ・レルム JNDI ATN ATZ Auditor LDAP 開発者 Web Container EJB Container Java EE アプリケーション JMSサーバ Destination JDBC データソース Web サーバ RDBMS トランザクション マネージャ (Queue /Topic) Copyright© 2012, Oracle. All rights reserved. 9 より堅牢なアプリケーション実行基盤としてのWebLogic Oracle WebLogic Serverは、Java EE仕様に準拠しつつ、 堅牢なアプリケーション実行基盤を提供するための機能を豊富に提供します。 これらの詳細は、当資料の 「Oracle WebLogic Serverの特長」 で説明します。 WebLogic Server のゴール 高可用性 充実した管理機能 優れた性能 高い安定性・信頼性 Java EE準拠の アプリケーションサーバのゴール Oracle DBとの親和性 Java EE機能の提供 Java EE機能の提供 Copyright© 2012, Oracle. All rights reserved. 10 WebLogic Server の進化 • 常に最新のJava SE/EE標準を実装し製品化 • ミッションクリティカル・システムを支えるための継続的な 性能・堅牢性・管理容易性の追求 New!! WebLogic 12c WebLogic 11g WebLogic 10.x WebLogic 9.x WebLogic 8.1 J2EE 1.3 J2SE 1.4.2 オラクル製品と の連携 J2EE1.4 JavaSE 5 ゼロダウンタイム ミッション・クリティカル システムJ2EE基盤とし ての機能を確立 計画外停止の最小化 に加えて計画停止も最 小化。厳しい運用要件 にも柔軟に対応 ミッションクリティカル Java EE基盤 自動チューニング 運用管理性向上 コア機能強化 Java EE 5 Java SE 5&6 • オラクルDB連携 • Enterprise Manager による一元管理 • インメモリ技術との連 携 フルレイヤ クラスタリングの完成 Java EE 5&6 Java SE 6 オラクル製品と の統合、サン製 品との連携 • Oracle iASとの統合 • Oracle RACとの親和 性強化 • Java技術(JRockit)の 強化 • Sun Javaとの連携、 統合 オラクル製品群の 本格的な統合 Copyright© 2012, Oracle. All rights reserved. 11 Java EE 6 Java SE 6& 7 ミッション・クリティカル性 の強化 • 最新標準への対応による開発 生産性向上 • RAC連携強化: 耐障害性及び スループット向上 • 更なる高速化 • 運用管理性の強化 クラウド・スケールの可用性 最先端の開発標準 [参考] Oracle WebLogic Serverのライセンスについて Copyright© 2012, Oracle. All rights reserved. 12 Oracle WebLogic Server ライセンスと使用可能な機能 WebLogic Server Standard Edition WebLogic Server Enterprise Edition • WebLogic Server • (冗長構成は可能) • Development Tools • WebLogic Server SE + ・ TopLink ・ Oracle ADF ・ OEPE • Oracle JRockit • Oracle Fusion Middleware Control • Oracle WebTier • • Oracle HTTP Server Oracle WebCache Web APサーバとして必要な ほとんどの機能を含んだ エディション。複数サーバでの 冗長構成も可能(Httpセッション レプリは不可) • 高可用性機能 • Httpセッションレプリ • サーバ移行 など • 高度な監視/診断機能 • Oracle Diagnostics Pack for Oracle Middleware ・ JRockit Mission Control ・ JRockit Flight Recorder ・ JVM Diagnostics ・ Grid Controlによる監視 WLS SEの機能に加え、 Httpセッションレプリなど 多くの高可用性機能や JRockit Flight Recorderなど 高度な診断機能を付加。 Copyright© 2012, Oracle. All rights reserved. WebLogic Suite • WebLogic Server EE + • WebLogic Real Time • Coherence Enterprise Edition • WebLogic Operations Control • IAS EE (Forms, Reports, …) • Forms, Reports for WebLogic • Management Pack for Coherence WLS EEの機能に加え、 レスポンスタイム安定化や性能向上 に貢献するWebLogic Real Timeや Coherence EEなど付加 13 WebLogic Serverのエディションについて • WebLogic Serverのエディションを決める上では、下表の要件がポイントになります。 要件カテゴリ 要件 可用性要件 複数のサーバインスタンスで負荷分散 し、障害時、ダウンしたサーバにはリク エストをルーティングしない WebLogic SE Httpセッションの レプリケーションを行う 性能監視要件 その他 WebLogic EE WebLogic Suite ○ ○ ○ × ○ ○ (Coherence EE別途購入で 可能) 障害時、サーバインスタンスを他のノー ドで起動する × ○ ○ JMSやJTAサービスの冗長化 × ○ ○ Httpセッションを遠隔地のサイトにコピ ーする × ○ ○ WebLogicが提供する標準のツールに てMBeanベースで性能監視を行う ○ ○ ○ JVMにJRockitを利用する場合、 専用GUIツールやフライトレコーディング 機能で総合的な性能監視を行う × ○ ○ (Diagnostics Pack 別途購入で可能) JavaEEアプリだけでなく Oracle Formsアプリも動作させる × × ○ WebLogic Real Timeを使い JVMのGC時間を最適化する × × ○ Copyright© 2012, Oracle. All rights reserved. 14 Oracle WebLogic Serverの特長 高可用性、充実した管理機能、優れた性能、高い安定性・信頼性、 Oracle Databaseとの親和性 Copyright© 2012, Oracle. All rights reserved. 15 Oracle WebLogic Serverのクラスタ機能 • Oracle WebLogic Serverは複数の管理対象サーバで「クラスタ」を構成することができます。 • クラスタを構成することで、負荷を分散したり、障害の発生時にメモリ上のデータを消失せずにユー ザの処理を継続することが可能です。 WebLogicドメイン セッションデータは下記にレプ リケート可能 マシンA ① クラスタ内の他メンバーの Java VMヒープ ② データベースの表 ③ Oracle Coherence In-Memory サーバのメモリ (Coherence*Web) WebLogicクラスタ 障害 管理対象 サーバ#1 ユーザ リクエスト Webサーバ または L/B 障害時は クラスタの 他のメンバーに リクエストを ルーティング セッション データ ① ② Database マシンB 管理対象 サーバ#2 ③ Oracle Coherence Copyright© 2012, Oracle. All rights reserved. 16 WebLogic Serverプロダクション再デプロイメント • • • Oracle WebLogic Serverは、プロダクション再デプロイメントという機能で、アプリケーションのバ ージョン(2世代)を管理可能です。 プロダクション再デプロイメントでは、古いバージョンを利用しているユーザには影響を与えず新し いバージョンのアプリケーションをデプロイ可能で、古いバージョンのアプリケーションは利用して いるユーザがいなくなると自動的に廃棄します。 これにより、ユーザに影響を与えずアプリケーション更改が可能になり、メンテナンスによりシステ ム停止時間を極小化することが可能です。 他APサーバ WebLogic アプリケーション更新時は、そのままデプロイするのみ。 ロードバランサーなどの設定を変える必要なし。 WebLogic Application X (Version 1) Application X (Version 2) 影響なし。 利用終了後 Ver.1は自動破棄 アプリケーション更新時は、常にフロントのロードバラン サーの設定を変更する必要があり、運用負荷が高く なる。 他APサーバ Application X 公開。 新規アクセスは V.2利用 Copyright© 2012, Oracle. All rights reserved. 新 Application X 新バージョン 公開時点で エラー発生 公開 17 Oracle WebLogic Serverの自動チューニング • 一般的にJava APサーバでは、処理要求を適切に処理するために「スレッド」数を適切に設定するチュ ーニングが必要になります。 • ただしこのスレッド・チューニングは設定、テスト、効果測定を繰り返して最適値を導出するため、非常 に負荷が高い作業になります。 • WebLogic Server は、処理の実行状況や負荷に応じて、最適なスレッド数を自動的に設定します。そ のため、環境構築時のチューニング負荷を大幅に削減することが可能です。 他APサーバ WebLogic スレッド数の自動チューニング可能 人の手によるチューニング作業負荷を大幅に軽減 スレッドプールの手動チューニングが必要。最適なチュ ーニング・パラメータを導出・設定するために多大な作 業が必要 WebLogic パラメータ設定 リクエスト 実行 実行 スレッド 割当 スレッド・プール中 のスレッド数の 最適値を 自動チューニング 負荷テスト実施 性能値算出 最適値を 導出するまで 繰り返し! スレッド・プール 比較 Copyright© 2012, Oracle. All rights reserved. 18 JRockit Flight Recorder 突然のトラブルに対する新アプローチ • • • • JRockit JVMの動作状況を自動記録(オーバーヘッドは5%以下) JVMが障害でダウンしても、自動記録されたデータで時系列の状態データを取得可能 取得した情報は、JRockit Mission ControlでGUIベースで分析可能 JVMだけでなくWebLogic Serverやアプリケーションのイベント情報も取得可能 WebLogic Java EE/ISV アプリ Oracle WebLogic Server Java EE/ISV アプリ 直近(例: 24時間) の実行時情報を 記録し続ける App Server 自動記録 5%以下の JRockit VM 他APサーバ 低負荷 不安定時に 自動ダンプ出力も 設定可能 履歴を含めた情報を自動記録、自動出力 障害発生直前の状況を取得可能 ダンプは出ないこともある。 障害発生直前の状況は不明 ログだけでは詳細解析困難 原因不明 要再現テスト JVM 問題発生時は詳細情報取得できてない 原因究明の長期化(再現待ち) Copyright© 2012, Oracle. All rights reserved. 19 業界標準ベンチマークでの実績 • Oracle WebLogic Serverは、業界標準ベンチマークである SPEC jAppServer2004と SPEC jAppServer2010の両方でトップレベルの実績を出しており、製品として性能の 高さを証明しています。 SPEC jAppServer2004 SPEC jAppServer2010 No.1 9000 17400 7661.16 17301.86 8000 17200 7000 6000 5000 17000 4368.02 4000 16800 16646.34 3000 16600 2000 1000 16400 0 Oracle WebLogic11g IBM WebSphere v6.1 16200 64 cores, 8 chips Oracle Linux 5 Update 5 x86_64 64 cores, 8 chips IBM AIX V7.1 http://www.spec.org/jAppServer2004/results/jAppServer2004.html より Oracle WebLogic11g IBM WebSphere v7 64 cores, 8 chips 64 cores, 8 chips Oracle Linux 5 IBM AIX V7.1 Update 5 x86_64 http://www.spec.org/jEnterprise2010/results/jEnterprise2010.html Copyright© 2012, Oracle. All rights reserved. より 20 WebLogic Real Time (JRockit Real Time をWebLogicで利用) • 一般的にJava アプリケーションサーバはJVMで動作しますが、JVMでは限られたヒープ(メモリ)領域 を有効に利用するため、必ず「ガベージ・コレクション(GC)」というメモリ内で再利用できる領域の確保 処理が実行されます。 • このGCが発生すると、Javaアプリケーションサーバの処理が停滞または完全に停止し、性能に影響 を与えます。 • WebLogic Serverは、JVMにJRockit Real Timeを利用することで、GCによる性能の影響を自動的に 最小限に抑制することが可能です。 他のAPサーバのJVMのGC処理 GC時間 WebLogic on JRockit Real Time GC時間 120 120 105 105 90 90 75 75 60 60 45 45 30 30 15 15 0 0 0 0 2000 4000 6000 8000 10000 12000 14000 16000 高トランザクション時: GCによる停止 により、レスポンスタイムが劣化する 2000 4000 6000 8000 10000 12000 14000 16000 18000 18000 JRockit Real Timeは、Deterministic GCにより、GC 停止時間を抑制 → 安定したレスポンスを提供 アプリケーションに手を入れる必要なし Copyright© 2012, Oracle. All rights reserved. 21 Oracle WebLogic Serverの処理要求の流量制御 • 一般的にJavaのWebアプリケーションは、HttpSessionというオブジェクトをサーバ側に保持し、ユー ザが処理を継続している間維持されます。つまり、アプリケーション単位のHttpSession数がアプリ ケーションの同時処理と考えることができます。 • WebLogic Serverは、HttpSessionの最大許容数をアプリ単位に設定することが可能です。このた め、想定外の処理要求が発生し、大幅な処理滞留や過大な負荷がAPサーバにかかることを回避 し、安定稼働を行うことが可能です。 WebLogic 他APサーバ セッション数制限により過負荷状態になる前の保護が可能 過負荷によりアプリ実行がハングアップする状態やメモリ不 足状態が続いた場合、自動再起動など行い不安定状態 の回避が可能 アプリAは 同時300名まで可能 301人目は不可 過負荷状態になる前に保護したり、過負荷状態に なったとき自動対処する機能なし よって、過負荷状態でAPサーバの動作が不安定にな る可能性が高い WebLogic 他APサーバ アプリA 制限 300 アプリA アプリB 制限 500 アプリB ハングアップ やメモリ不足状態を検知し再起動可能 Copyright© 2012, Oracle. All rights reserved. 不安定 状態 22 WebLogic Serverのアプリケーション実行優先制御 • WebLogic Serverは、ワークマネージャ機能により、アプリケーションまたはユーザ単位で、アプリ ケーション実行の優先度を設定することが可能です。 • このワークマネージャを活用すると、特にトラフィックが高い場合、重要アプリもしくは重要ユーザを 遅延させず確実に処理を完了させることができます。 WebLogic 他APサーバ ワークマネージャによるスレッド割当の優先制御が可能。 重要処理を停滞/タイムアウトさせず確実に完遂させる。 WebLogic 優先度 高 アプリ実行における優先制御機能なし。 通常の処理と重要処理を区別なく処理するため、負 荷により重要処理が停滞/タイムアウトする可能性あり 重要アプリ ワークマネージャ 優先度 低 通常アプリ Copyright© 2012, Oracle. All rights reserved. 他APサーバ 重要アプリ 重要アプリが 通常アプリの ために停滞 することも 通常アプリ 23 Oracle Databaseとの親和性:マルチデータソース WebLogic Serverは、製品としてOracle RACとの接続をサポートします。 WebLogic Serverのマルチデータソースにより、RACのサービス機能と連動した接続が可能にな ります。 他社APサーバではOracle RAC接続は不可能です。 (オラクルのJDBCドライバーの利用が必要になります。) 他社APサーバベンダーも、サポートポリシー上は「Oracle RAC接続をサポート」と謳っていますが RAC接続に問題が発生した場合、そのベンダーでサポートや障害解析を行うわけではありませ ん。 他APサーバ WebLogic マルチデータソースにより、RACサービス稼動状況を検知 し、無効なデータソースを自動的に識別可能 無効データソースを 利用しない クライアントは障害 を意識しない RACサービス単位で 稼動状況検知 無効なノードに接続し エラーとなる DB (RAC) ERROR AP クライアント OK マルチ WebLogic データソース RACサービス稼動状況を検知できない アプリケーションからRACのサービス機能を利用した接続 ができない(JDBCドライバの機能を使うしかない) DB (RAC) ストレージ クライアント 無効なノードへ の接続が残る A P DB (RAC) 接続プール 他APサーバ Copyright© 2012, Oracle. All rights reserved. RACサービスの 稼動状況検知不可 DB (RAC ストレージ 24 WebLogic Server + Oracle Databaseの統合サポート • オラクルは、WebLogic ServerとOracle Databaseやその接続に必要なコンポーネントを統 合的にサポートします。 • もし何か問題や障害が発生した場合でも、オラクルのサポート・サービスが統合的にサポート します。 • 他ベンダーのAPサーバでも、「Oracle Databaseをサポート」というポリシーを提示しています が、製品自体のサポートを行うわけではありません。 APサーバ+DBで 統合的にサポート APサーバー層 端末 HTTP HTTP Webブラウザ リ ス ナ データベース層 Java プログラム JDBC Java プログラム JDBC HTTPS JavaEE コンテナ RDBMS オラクル社 PDA、携帯 WebLogic Server Oracle Database JRockit JVMまたは HotSpot JVM Copyright© 2012, Oracle. All rights reserved. 25 Oracle WebLogic Serverのアーキテクチャ基礎 Copyright© 2012, Oracle. All rights reserved. 26 Oracle WebLogic Server のドメイン管理について① • WebLogic ServerのAPサーバ環境は、「ドメイン」という単位で管理します。ドメインは論理的な単位で、どのよう な区分けで構成してもかまいません。(例:地域別に東京ドメイン、大阪ドメイン。業務別にCRMドメイン、HRドメイ ンなど) • ドメインには必ず「管理サーバ」が1つだけ存在し、ドメインの構成情報を管理し、管理コンソールアプリケーション を動作させています。管理サーバも、Java EEのWebアプリケーションサーバ機能をもつJavaプロセスです。 WebLogicドメイン 管理サーバ ドメイン ログ 管理 サーバ コンフィグ レーション リポジトリ マシンC 管理ツール (Admin Console/ FMW Control/ /WLSTなど) Copyright© 2012, Oracle. All rights reserved. 27 Oracle WebLogic Server のドメイン管理について② • ユーザアプリケーションは、ドメイン内に「管理対象サーバ」を構成し、そこで動作させます。 • 管理対象サーバは、Java EEのWebアプリケーションサーバ機能を提供するJavaプロセスです。 • 管理対象サーバはドメイン内に複数作成できます。管理対象サーバは、1台の物理マシンに複数設置することも できますし、管理サーバと同じマシンに設置することもできます。 • 管理対象サーバは、管理サーバにより構成・監視されます。 WebLogicドメイン マシンA 管理サーバ ドメイン ログ 構成・監視 管理 サーバ コンフィグ レーション リポジトリ 管理対象 サーバ#1 構成・監視 構成・監視 管理対象 サーバ#2 HTTP/HTTPS リクエスト Webサーバ または L/B マシンC マシンB 管理ツール (Admin Console/ FMW Control/ /WLSTなど) 管理対象 サーバ#3 Copyright© 2012, Oracle. All rights reserved. 28 Oracle WebLogic Server のドメイン管理について③ • WebLogic Serverは、ノードマネージャというコンポーネントで管理対象サーバのプロセスを制御・監視するこ とができます。ただし、ノードマネージャの使用は必須ではありません。 • ノードマネージャから管理対象サーバの起動・停止を制御できます。また、管理対象サーバのプロセスがダウ ンした場合に自動再起動が可能になります。 WebLogicドメイン マシンA 管理サーバ ドメイン ログ 構成・監視 管理 サーバ コンフィグ レーション リポジトリ 管理対象 サーバ#1 構成・監視 構成・監視 HTTP/HTTPS リクエスト ノード マネージャ 管理対象 サーバ#2 Webサーバ または L/B マシンC マシンB 管理ツール (Admin Console/ FMW Control/ /WLSTなど) ノード マネージャ 管理対象 サーバ#3 Copyright© 2012, Oracle. All rights reserved. 29 Oracle WebLogic Server のドメイン管理について④ • WebLogic Serverは、ドメイン内の任意の管理対象サーバをまとめて「クラスタ」を構成できます。 (ドメインをまたがって、クラスタを構成する事はできません。) • クラスタを構成すると、クラスタ単位でのアプリケーション管理やHttpセッションレプリケーションなどの高可用 性機能が使用可能になります。 WebLogicドメイン マシンA WebLogicクラスタ 管理サーバ ドメイン ログ 構成・監視 管理 サーバ コンフィグ レーション リポジトリ 管理対象 サーバ#1 構成・監視 構成・監視 HTTP/HTTPS リクエスト ノード マネージャ 管理対象 サーバ#2 Webサーバ または L/B マシンC マシンB 管理ツール (Admin Console/ FMW Control/ /WLSTなど) ノード マネージャ 管理対象 サーバ#3 Copyright© 2012, Oracle. All rights reserved. リクエスト分散と障害サーバから Liveサーバへのリクエスト フェイルオーバだけであれば WebLogicクラスタは不要。 Httpセッションレプリケーション など高度な機能を利用時は WebLogicクラスタが必要 30 Chapter 0: デモシナリオ Copyright© 2012, Oracle. All rights reserved. 31 デモシナリオ ①WebLogic Serverインストール ②ドメインの作成/管理サーバの起動 ③管理対象サーバの作成 ドメイン ④管理対象サーバの起動 ⑤JDBCデータソースの作成 ⑥アプリケーションのデプロイ J D ⑦Webブラウザでアプリケーショ ンの実行 B C データベース APP 管理対象サーバ 管理サーバ Oralce WebLogic Server Copyright© 2012, Oracle. All rights reserved. Chapter 1: Oracle WebLogic Serverのインストール Copyright© 2012, Oracle. All rights reserved. 33 Oracle WebLogic Serverのインストールと構成のステップ • Oracle WebLogic Serverのインストールと構成は下図のように進めていきます。 1.WebLogic Server 12c のインストール WebLogic Serverのインストールファイルを使用して、 WebLogic Server本体のインストールを行います。 このときインストール先のディレクトリやインストール するコンポーネントを指定します。 Configuration Wizardを使用してドメインを作成します。 このとき、ドメイン名や使用JVMや起動モード等を 指定します。 ドメインを作成すると、管理サーバが自動的に構成 されます。 ドメイン作成時に管理対象サーバやJDBCデータソース などの構成も行うことは可能です。 2.ドメインの作成 3.ドメインの構成 管理対象サーバの構成 pack,unpackコマンドによる 管理対象サーバの物理マシンへの配置 クラスタの構成 アプリケーションのデプロイ/アンデプロイ アプリケーションの起動/停止 アプリケーションの構成 JDBCデータソースの構成 JMSの構成 セキュリティの構成 など…. 管理コンソールなどの管理ツールを使用して、 図示されているような様々な管理タスクを行い ドメインを構成します。 管理対象サーバを物理マシンに配置するには、 packコマンド、unpackコマンドを利用します。 また、作成したドメインはテンプレート化が可能です。 ドメインのテンプレートをドメイン作成時に指定すると すでにサーバなど事前に構成されたドメインを作成する ことが可能です。 Copyright© 2012, Oracle. All rights reserved. 34 インストールと構成前に最低限決めておくべき主な事項① • Oracle WebLogic Serverをインストールする前に下表の項目を決めておく必要があります。 カテゴリ 設定項目 設定例 インストール MIDDLEWARE_HOME (インストール先ディレクトリ) (インストールする物理マシン毎に) C:¥Oracle¥Middleware WebLogicと共にインストールする 製品 Oracle Coherenceと Oracle Enterprise Pack for Eclipse Oracleサポートサイトへ 直接接続してセキュリティ更新情報 を受け取るか 受け取らない サンプルのインストール しない (Windowsの場合のみ) ノードマネージャーの Windowsサービス化 しない フロントのWebサーバに Oracle HTTP Serverを使用するか しない (使用する場合、別途インストール作業が必要) Oracle ADFのアプリケーションを WebLogic上で動作させるか 動作させない (Oracle ADFアプリを動作させる場合、別途インストー ル作業が必要) Fusion Middleware Controlを使用 するか しない (Oracle HTTP Serverを使用する場合は必須。 使用する場合、別途インストール作業が必要) (別途インストー ルを要するもの) Copyright© 2012, Oracle. All rights reserved. 35 インストールと構成前に最低限決めておくべき主な事項② • Oracle WebLogic Serverのドメイン構成を行う前に下表の項目を決めておく必要があります。 カテゴリ 設定項目 設定例 ドメイン構成 ドメイン名 TokyoDomain ドメイン管理者ID/パスワード weblogic/welcome1 管理サーバ名とポート AdminServer :7001 管理対象サーバ名とポート Server1 : 7011 Server2 : 7012 物理マシンと 管理サーバのマップ Host1に管理サーバを配置 物理マシンと 管理対象サーバのマップ Host1にServer1を配置 Host2にServer2を配置 利用するJVM JRockit 起動モード 本番モード ドメインの構成先ディレクトリ (各サーバ毎に) C:¥Oracle¥Middleware¥user_projects¥domains クラスタを構成する場合、 クラスタ名とメンバーとなるサーバー クラスタは構成しない Copyright© 2012, Oracle. All rights reserved. 36 WebLogic Serverのインストールについて • WebLogic Serverのインストールは、提供されているインストールファイルをOS上で実行し、インス トーラを起動して行います。インストールファイルは、プラットフォームにより異なります。 • インストーラによりWebLogic Serverのソフトウェアファイルがマシンにコピーされます。ドメインはイ ンストール後に Configuration Wizardを使用して作成します。 • インストールは、下表のモードを選択して行います。 インストールモード 概要 GUIモード デフォルトのインストール・モード GUIのダイアログ画面にパラメータを指定しながら対話的にイ ンストールを行います。 CUIモード CUIのダイアログ画面にパラメータを指定しながら対話的にイ ンストールを行います。 Linux/UNIXなどでGUIが利用できない環境では自動的に CUIモード・インストールになります。 サイレント・モード あらかじめ必要なパラメータをファイルに記述しておき、バッチ 的にインストールを行います。 ZIPファイルを展開することでインストールを行う形態もあります。 ZIPファイル展開によりインストールしたWebLogic Server は開発用途として使用して下さい。 Copyright© 2012, Oracle. All rights reserved. 37 WebLogic Serverのインストール • インストーラを起動します。 • oepe-indigo-installer-12.1.1.xxxxxxxxxx_win32.exe 「ようこそ」画面で 「次へ」ボタンを選択 Copyright© 2012, Oracle. All rights reserved. 38 ミドルウェアホームディレクトリの選択 • 「新しいミドルウェアホームを作成する」が選択状態になっていることを確認します。 • 「ミドルウェアホームディレクトリ」に任意のディレクトリを指定します。 • 当資料では、このディレクトリを MW_HOMEと表記します。 この資料ではミドルウェアホームディレクトリ に「C:¥Oracle¥Middleware」を指定。その 後「次へ」ボタンを選択 Copyright© 2012, Oracle. All rights reserved. 39 セキュリティ更新のための登録 • 「セキュリティ更新のための登録」では、このハンズオンでは何も入力せず「次へ」ボタン を選択します。 • 「電子メールアドレスが指定されていません」ダイアログでは「Yes」を選択します。 その後の「確認」ダイアログでも「Yes」を選択します。 当デモでは登録しませんが 実際の運用では、最新のセキュリティ更新情報を タイムリーに入手するため、 基本的に登録することを推奨します。 Copyright© 2012, Oracle. All rights reserved. 40 インストールタイプの選択 • WebLogic Serverのみをインストールする場合は、「標準」を指定しますが、この ハンズオンでは「カスタム」選択時の画面を確認する目的で、「カスタム」を指定 して「次へ」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 41 製品とコンポーネントの選択 • この画面でインストールするコンポーネントを指定できますが、このハンズオンではデフォルトの状態 から、CoherenceとOracle Enterprise for Eclipseのチェックを外し、「次へ」ボタンを選択してくださ い。 • [参考] WebLogic Server 12c (12.1.1)では、デフォルトでサンプルのサーバ(MedRecなど)はイン ストールされません。 Copyright© 2012, Oracle. All rights reserved. 42 インストールするJDKの選択 • ドメインで使用するJDKの選択はドメイン作成時に行いますので、今回はデフォ ルトのまま、すべてのJDKをチェックして「次へ」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 43 製品インストール ディレクトリの選択 • 製品インストールディレクトリはデフォルトのまま指定して「次へ」ボタンを選択し ます。 • 当資料では、このディレクトリをWLS_HOMEと表記します。 Copyright© 2012, Oracle. All rights reserved. 44 Windowsサービスのインストール • Windowsの場合、ノードマネージャのWindowsサービス登録を指定できますが 今回は「いいえ」を指定して「次へ」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 45 ショートカットの場所の選択 • Windowsの場合、製品の各種ショートカットメニューの作成先を指定できます。 • 今回はデフォルトの「All Userのスタートメニューフォルダ(推奨)」を指定して「次 へ」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 46 インストール内容の確認 • インストール内容を確認し、「次へ」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 47 インストールの進行 • 右下のゲージが100%になるまで待ちます。 Copyright© 2012, Oracle. All rights reserved. 48 インストールの完了 • 「インストール完了」画面を確認し、「Quickstartの実行」のチェックを確認して 「完了」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 49 クイックスタートの起動 Copyright© 2012, Oracle. All rights reserved. 50 Chapter 2: Oracle WebLogic Serverのドメインの作成 Copyright© 2012, Oracle. All rights reserved. 51 デモの構成 • 当デモでは下図のような構成を作成します。 • 管理対象サーバが直接HTTPリスニングを行います。 WebLogicドメイン HTTP リクエスト Web ブラウザ 管理対象 データベース J D サーバ HTTP Oracle (domain1) B (Server1) C レスポンス 管理・監視 管理サーバ (AdminServer) Copyright© 2012, Oracle. All rights reserved. JDBCデータソース 名前: test JNDI名 jdbc/test 52 ドメインの構成 • 当資料では、ドメインは下記の構成にします。 • (デフォルトで構成されるサンプルドメインは当資料では使用しません) • 起動モードとは • 本番モード 本番環境で使用するモード(プロダクションモード) • 開発モード 開発環境で使用するモード。 自動デプロイ機能が有効になっている等の違いがある。 構成項目 当資料での設定値 ドメイン名 domain1 ドメイン起動モード 本番モード JDK JRockit SDK 1.6 管理対象サーバ数 1 管理対象サーバ名 Server1 管理対象サーバリスンポート 7002 管理者IDとパスワード ID:weblogic パスワード:welcome1 Copyright© 2012, Oracle. All rights reserved. 53 クイックスタートの起動 Copyright© 2012, Oracle. All rights reserved. 54 Configration Wizardの起動 「新しいWebLogicドメインの作成」を指定 して「次へ」ボタンを選択 Copyright© 2012, Oracle. All rights reserved. 55 ドメインソースの選択 • 「以下の製品をサポートするために、自動的にコンフィグレーションされたドメイ ンを作成する」を選択し、「次へ」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 56 WebLogicドメインの作成 • 本来ドメイン名は任意ですが、今回は「ドメイン名」に「base_domain」を入力し て「次へ」ボタンを選択します。 • 今回は、ドメインの場所はデフォルトのままにしておきます。なお、このディレクト リを当資料ではDOMAINと表記します。 Copyright© 2012, Oracle. All rights reserved. 57 管理ユーザ名とパスワードの設定 • 「User name」に「weblogic」、「User password」、「Confirm user password」に 「welcome1」を入力して「次へ」ボタンを選択します。 WebLogic Server 11g(10.3.x)よりドメインの管理者パスワードの ポリシーは、下記のように変更されています。 •ケースセンシティブである, •最低8文字以上の英数字文字が必要 •1つ以上の数字か下記特殊文字を含める必要がある。 !"#$%&'()*+,-./:;<=>?@[¥]^_`{|}~ Copyright© 2012, Oracle. All rights reserved. 58 サーバの起動モードおよびJDKの設定 • 「WebLogicドメインの起動モード」に「本番モード」を、「JDKの選択」で「使用可 能なJDK」から「JRockit SDK 1.6.0_24」を指定して「次へ」ボタンを選択します。 jdevstudio11111install.exeで インストールした場合、 使用可能なJDKにはSunのもの しか表示されません。 Copyright© 2012, Oracle. All rights reserved. 59 Oracle WebLogic Serverの起動(動作)モード • Oracle WebLogic Serverでは、2つの起動モード(開発モード、本番モード)があります。 • 起動モードはドメイン単位で設定します。 • これらの起動モードの主要な差異は、下記になります。 • 開発モード • アプリケーション変更の自動検知を行えます。(その分オーバヘッドがあります。) • 管理サーバ起動時に認証が不要です。 • 管理コンソールでの操作は、即時反映されます。 • 管理コンソール等の内部アプリケーションは、初回アクセス時に初めてデプロイされます。 • Webサービステストツールやクラスローダ分析ツールが利用可能です。 • 一般的に、開発・テスト環境ではこのモードを選択します。 • 本番モード(プロダクション・モード) • デフォルトでアプリケーション変更の自動検知は行いません。 • 管理サーバ起動時に認証が必要です。 • 管理コンソールでの操作は、ロック取得を行ってから行い、ロールバックが可能です。 • 管理コンソール等の内部アプリケーションは、デプロイ済の状態です。 • Webサービステストツールやクラスローダ分析ツールは利用できません。 • 一般的に、本番環境ではこのモードを選択します。 Copyright© 2012, Oracle. All rights reserved. 60 詳細なコンフィグレーションの選択 • このデモでは詳細なコンフィグレーションは行わないので、そのまま 「次へ」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 61 管理サーバーの構成変更 Copyright© 2012, Oracle. All rights reserved. 62 コンフィグレーションのサマリ • サマリー画面で「作成」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 63 ドメインの作成中 • 「進行状況」が100%になったら、「完了」ボタンを選択します。 • 管理サーバはこの後手動で起動しますので、ここでは「管理サーバの起動」 チェックボックスは選択しません。 Copyright© 2012, Oracle. All rights reserved. 64 管理サーバの起動 • DOMAIN¥startWebLogic.cmd (UNIXの場合は、startWebLogic.sh) を実行します。 • 管理者ユーザIDとパスワード入力が求められるので、設定した内容に基づいて入力します。 • 下記のようなメッセージが表示されることを確認します。 • <日時> <Notice> <WebLogicServer> <BEA-000360> <Server が RUNNING モードで起動しました。> Copyright© 2012, Oracle. All rights reserved. 65 WebLogic Serverの起動/停止について • WebLogic Server 12cでは、管理サーバや管理対象サーバは、JDKのJavaコマンドを 利用して起動させるため、様々な方法が利用できます。 • 一般的には、ドメインディレクトリ/binに存在する下表のシェルスクリプトを利用します。 ノード・マネージャを利用時は、管理コンソールから起動することも可能です。 対象 操作 スクリプト名 備考 管理サーバ 起動 startWebLogic.cmd (win) startWebLogic.sh(Unix) 停止 stopWebLogic.cmd (win) stopWebLogic.sh(Unix) 本番モードでは、デフォルトでスク リプト実行途中で管理者ユーザ、 パスワードの入力が必要 本番モードでは、デフォルトでスク リプト実行途中で管理者ユーザ、 パスワードの入力が必要 起動 startManagedWebLogic.cmd (win) startManagedWebLogic.sh (Unix) 停止 startManagedWebLogic.cmd (win) startManagedWebLogic.sh (Unix) 管理対象サ ーバ 第1引数に管理対象サーバ名が 必要 デフォルトでスクリプト実行途中で 管理者ユーザ、パスワードの入力 が必要。 Copyright© 2012, Oracle. All rights reserved. 66 起動スクリプトとJVMオプション指定について① • WebLogic Serverは、OS上のjavaプロセスとして起動するため、JVMオプションは WebLogicのjavaプロセス起動時の引数として指定します。 • 具体的な方法の一つとして、WebLogic Serverのドメイン構成時に自動的に生成される 起動スクリプトでJVMオプションを指定します。 • メモリ関連のオプションの場合(管理対象サーバ) • スクリプト startManagedWebLogicのUSER_MEM_ARGS環境変数で指定 • その他オプションの場合(管理対象サーバ) • スクリプト startManagedWebLogicのJAVA_OPTIONS環境変数で指定 • 詳細は下記をご参照下さい。 • http://download.oracle.com/docs/cd/E12839_01/web.1111/e13708/overview.htm#i1069110 Copyright© 2012, Oracle. All rights reserved. 67 起動スクリプトとJVMオプション指定について② • WebLogic管理サーバの場合 • 管理サーバは、スクリプト起動の場合、下記のように指定 • > $DOMAIN_HOME/bin/startWebLogic.sh • $DOMAIN_HOME/bin/startWebLogic.shは、内部的に下図のスクリプトを実行 $DOMAIN_HOME/bin/startWebLogic.sh ■メモリ関連のJVMオプション USER_MEM_ARGS環境変数で指定 ■その他のJVMオプション JAVA_OPTIONS環境変数で指定 各種環境変数やデフォルトのJVMオプションの設定 $DOMAIN_HOME/bin/setDomainEnv.sh $WL_HOME/common/bin/commEnv.sh ….内部で実行されるスクリプト Copyright© 2012, Oracle. All rights reserved. 68 Chapter 3: 管理対象サーバの起動 Copyright© 2012, Oracle. All rights reserved. 69 Oracle WebLogic Serverの管理ツール • Oracle WebLogic Serverに対する各種管理操作を行うには、主に下表のツールを使用します。 • 下表以外に多くのJMX MBeanを提供しており、任意のMBeanツールで管理可能です。 管理タスク ツール名 概要 インストール インストーラ WebLogic Serverソフトウェアファイルの導入。 GUIモード、コンソールモード、サイレントモード をサポート ドメイン作成 Configuration Wizard ドメインの作成で使用する。 GUIモード、コンソールモード両方サポート ドメイン作成後の 各種構成 管理コンソール Webベースの管理コンソールアプリケーション。 管理サーバが起動している場合、利用できる。 ドメインにおける各種管理操作やモニタリングを 行える。 WebLogic Scripting Tool(WLST) Jythonベースで管理タスクを実行できるスクリ プト・ツール。プラットフォームに依存しない。管 理サーバが起動していなくても利用できる weblogic.Deployer Javaコマンドでアプリケーション・デプロイを行う ユティリティ wlserver Antタスク ドメイン作成やサーバ起動を行えるAnt Task wlconfig Antタスク ドメイン構成タスクを行えるAnt Task Copyright© 2012, Oracle. All rights reserved. 70 管理コンソールへのログイン • Webブラウザで、 http://localhost:7001/console/にアクセスします。 「ユーザ名」に「weblogic」、 「パスワードに「welcome1」を指定して 「ログイン」ボタンを選択 Copyright© 2012, Oracle. All rights reserved. 71 Administration Console 12c Copyright© 2012, Oracle. All rights reserved. 72 管理対象サーバの新規作成① • 「サーバのサマリ」- 「コンフィグレーション」より作成処理を開始します。 ①「チェンジ センタ」で 「ロックして編集」ボタンを選択 ③「サーバのサマリ」-「構成」で「新規作 成」ボタンを選択 ②「ドメイン構造」で 「base_domain」-「環 境」-「サーバ」を選択 Copyright© 2012, Oracle. All rights reserved. 73 管理対象サーバの新規作成② • サーバ名とリスンポートを指定します。 ③「終了」ボタンを選択 ①「サーバ名」に 「Server1」を入力 ②「サーバリスンポー ト」に「7002」を入力 Copyright© 2012, Oracle. All rights reserved. 74 管理対象サーバの新規作成③ • 管理対象サーバ作成を確定させます。 ②「すべての変更がアクティブ化され ました。再起動は不要です」のメッセ ージを確認 ①「変更のアクティブ 化」ボタンを選択 Copyright© 2012, Oracle. All rights reserved. 75 管理対象サーバの起動 • コマンドプロンプトを起動し、DOMAIN¥binディレクトリに移動して下記を実行し、管理対象サーバを起動 します。 • > startManagedWebLogic.cmd Server1 http://localhost:7001 • 管理者ユーザIDとパスワード入力が求められるので、設定した内容に基づいて入力します。 • 下記のようなメッセージが表示されることを確認します。 • <日時> <Notice> <WebLogicServer> <BEA-000360> <ServerがRUNNING モードで起動しました。> Copyright© 2012, Oracle. All rights reserved. 76 [参考] 管理対象サーバの停止方法 • スクリプトによる停止 • DOMAIN_HOME¥bin¥stopManagedWebLogic.cmdを使用しま す。 > stopManagedWebLogic Server1 • 停止処理中、boot.propertiesが設定されていないと、管理者ユー ザ名とパスワードの入力が求めらるので、入力します。 • 管理コンソールによる停止 • 管理コンソールから強制的に停止させることもできます。 • 「ドメイン構造」から、「環境」- 「サーバ」- 「制御」タブ を選択して、 停止するサーバ名にチェックした後、「停止」ボタン- 「直ちに強制 停止」を選択します。 77 Copyright© 2012, Oracle. All rights reserved. [参考] 管理サーバの停止方法 • スクリプトによる停止 • DOMAIN_HOME¥bin¥stopWebLogic.cmdを使用します。 > stopWebLogic • 停止処理中、boot.propertiesが設定されていないと、管理者ユー ザ名とパスワードの入力が求めらるので、入力します。 • 管理コンソールによる停止 • 管理対象サーバと同様の手順です。 • ただし、停止実行直後から管理コンソールは使用できなくなり ます。 78 Copyright© 2012, Oracle. All rights reserved. Chapter 4: JDBCデータソースの作成 Copyright© 2012, Oracle. All rights reserved. 79 JDBCデータソースとは • アプリケーション実行環境(APサーバ)において、アプリケーションにデータベー ス接続サービスを提供する機能 • アプリケーションは、DB接続に必要な物理的な情報(DBホスト名、DBユーザID やパスワードなど)を意識せずにデータベース接続を行える。 • 接続プールを活用することでDB接続、切断処理のオーバーヘッドを削減可能。 APサーバ JNDIネーミング・サービス JDBCデータソース・サービス JDBCデータソース dsA 利用するJDBCドライバ DB接続情報 ルックアップ JNDI名 jdbc/dsA jdbc/dsA 接続プール データベース アプリケーション Copyright© 2012, Oracle. All rights reserved. 80 JDBCデータソースを利用する場合のコード • 下記は、JDBCデータソースを利用してConnection オブジェクトを取得する場 合のコード例。 import javax.naming.*; import javax.sql.*; import java.sql.*; ...(中略) String sql = “select * from emp” //実行するSQL文 Context ic = new InitialContext(); //JNDIルックアップのための初期コンテキスト取得 DataSource ds = (DataSource)ic.lookup(“jdbc/dsA”); //データソースオブジェクト取得 Connection conn = ds.getConnection(); //コネクション取得 Statement stmt = conn.createStatement(); //Statementの作成 ResultSet rset = stmt.executeQuery(sql); //結果セットの取得 ... ..(中略) rset.close(); //結果セットクローズ処理 stmt.close(); //Statementクローズ処理 conn.close(); //コネクションクローズ処理 Copyright© 2012, Oracle. All rights reserved. 81 JDBCデータソースを利用しない場合 • アプリケーションがAPサーバのJDBCデータソース・サービスを利用せず、 JDBCドライバをロードし、そのAPIを使用してDB接続を行うことも可能。 • ただしその場合、DB接続情報や接続プールの管理をすべてアプリケーション側 で管理・制御する必要がある。 APサーバ アプリケーション 利用するJDBCドライバと DB接続情報の管理 接続プールの制御 Copyright© 2012, Oracle. All rights reserved. データベース 82 JDBCデータソースを利用しない場合のコード例 • JDBCデータソースを利用しない場合、利用するJDBCドライバやDBの物理接 続情報をアプリケーション側で管理する必要がある。 • 下記は、それらの情報をハードコーディングしてしまっている悪い例。 import java.sql.*; ...(中略) String sql = “select empno, ename from emp” //実行するSQL文 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); // 利用ドライバの指定 String url = “jdbc:oracle:thin:@host1:1521:SID”; Connection conn =DriverManager.getConnection(url,”SCOTT”, “TIGER”); //コネクション取得 Statement stmt = conn.createStatement(); //Statementの作成 ResultSet rset = stmt.executeQuery(sql); //結果セットの取得 ... ..(中略) rset.close(); //結果セットクローズ処理 stmt.close(); //Statementクローズ処理 conn.close(); //コネクションクローズ処理 Copyright© 2012, Oracle. All rights reserved. 83 データソースとマルチデータソース • データソースは単体のDBインスタンスに特定ユーザで接続 • マルチデータソースは複数データソースをまとめて1つのデータソースとする。 • これにより、アプリからの接続要求を分散したり、1つのデータソースの接続先DBインスタンスに障 害が発生した場合に、そのデータソースをアプリに利用させないように自動制御が可能。 • つまり、Oracle RACのようなDBクラスタ環境での適用を前提としている。 WebLogic アプリケーション WebLogic アプリケーション マルチデータソース データソース データソース1 データソース2 データソース3 Oracle RAC Copyright© 2012, Oracle. All rights reserved. 84 データソース作成時に必要なパラメータ • 下表パラメータは、データベース種類に限らずデータソース定義時の共通項目 • 接続プールは、コンソールではデータソース作成後に「接続プール」タブから設定する。 項目( *は必須項目) 概要 Oracle Databaseの場合の例 データソース名* WebLogicでの管理名 dsA JNDI名* JNDIツリーへのバインド名 jdbc/dsA データベース種類* OracleやDB2など ※1 Oracle ドライバ種類* データベース種類に応じて指定 ※1 Oracle Thin Instance-Connection トランザクション・オプション 非XAドライバの場合に指定 1phase commit データベース名* データベースのID ORCL ホスト名* データベースのホスト名 localhost ポート* データベースへの接続ポート 1521 データベース・ユーザ名 データベースユーザ名 SCOTT パスワード データベースユーザのパスワード TIGER ドライバ・クラス名* JDBCドライバのクラス名※2 oracle.jdbc.OracleDriver URL* JDBC URL※2 jdbc:oracle:thin:@localhost:1521:ORCL JDBCドライバ・プロパティ JDBCドライバ テスト対象の表名(or SQL) 接続テストに利用する表またはSQL SQL SELECT 1 FROM DUAL ターゲット WLSドメイン中、どのサーバで利用するか Server1 ※1 コンソールの場合リストBOXで選択 ※2 コンソールの場合、自動入力 Copyright© 2012, Oracle. All rights reserved. 85 接続プールの主要パラメータ • 一般的に、プール中の接続作成、縮退のオーバーヘッドを削減するため、初期容量と最大容量を同 じに設定することがのぞましい。 項目 概要 デフォルト値 初期容量 接続プール作成時に作成される接続数。 接続プールに維持される最小接続数でもある。 1 最大容量 接続プール中に作成可能な最大接続数 15 増分容量 接続プール中に新たに接続を増加するときの量 1 予約時に接続をテスト アプリケーションが接続要求を行った際に、接続の有効性をテストするか否か。 false (テスト対象の表名の指定が必須) テスト頻度(秒) 接続プール中の未使用接続に対する接続テストの実行間隔。テスト失敗時は その接続を無効化して再度接続を作成 (テスト対象の表名の指定が必須) 120 アイドルプール接続を信頼する秒数 ここで指定した時間内に正常性が確認された接続のテストはスキップする。 10 縮小頻度(秒) 接続プール内の接続数を縮小させるまでの間隔 900 非アクティブ接続タイムアウト(秒) アプリケーションで使用中の接続が非アクティブの場合、ここで指定した秒数 が経過すると接続プールに自動復旧する 0(無効) 接続予約のタイムアウト(秒) アプリケーションが接続要求時、接続を得るまで待機できる秒数 10 接続作成の再試行間隔(秒) 接続プール中の接続作成が失敗した場合に再作成を試行する間隔 0 文タイムアウト JDBCドライバに対して実行中のSQL文をタイムアウトする時間の指定. JDBCドライバのStatement.setQueryTimeoutのメソッド実装に依存 -1 Copyright© 2012, Oracle. All rights reserved. 86 JDBCデータソースの動作 • 下表のデータソースを前提に、WebLogicのJDBCデータソースの動作について説明します。 接続プール データソース 項目 設定値 項目 設定値 データソース名 dsA 初期容量 3 jdbc/dsA 最大容量 5 データベース種類 Oracle(10g XE) 増分容量 1 ドライバ種類 Oracle Thin Service-Connection 予約時にテスト False ターゲット Server1 テスト頻度 0 接続予約のタイムアウト (秒) 10 接続作成の再試行間隔 0 縮小頻度 900 JNDI名 Copyright© 2012, Oracle. All rights reserved. 87 データソース作成 • 管理コンソール等で、「ターゲット」となるWebLogicサーバ名を指定した上でデータソースの作成、ア クティブ化を行うと、データソースが初期化され、接続プール中に「初期容量」で指定した数の接続が 作成され、すぐにアプリケーションから利用可能になる。 • 「ターゲット」のサーバ指定無しでも作成・アクティブ化だけは可能。 • WebLogicサーバの再起動は不要。 • データソース作成時には、データベースは利用可能状態である必要がある。 WebLogic管理対象サーバ Server1 データソース dsA データソースdsA 接続プール を作成、アクティブ化 Running Copyright© 2012, Oracle. All rights reserved. 88 Chapter 5: アプリケーションのデプロイ Copyright© 2012, Oracle. All rights reserved. 89 Webアプリケーションの開発とデプロイ • 下図のようなDBにアクセスするエンタープライズアプリケーション (earファイル)をWebLogic Server 12cにデプロイします。 • 検索文字列を入力し、ボタンを押下すると、EMP表(従業員表)から 名前に部分一致するものを表示します 検索の実行結果例 Copyright© 2012, Oracle. All rights reserved. 90 Java開発ツールとデプロイ・ツール • • 開発ツール • JavaEE5に準拠したJavaアプリケーションを開発できるツールであれば 何でもよい。 • 例 • Eclipse(Java EE開発可能なプラグインを設定したもの) • Oracle JDeveloper 11g • Oracle Enterprise Pack for Eclipse 11g • NetBeans IDE 7.0 デプロイ・ツール • 開発ツールによっては、WebLogic Serverに直接デプロイできるものが ある。 • WebLogic Serverの管理コンソール / FMW Control • Javaコマンドベースのweblogic.Deployerユティリティ • Antベースのwldeployユティリティ • WebLogic Scripting Tool (WLST) • 自動デプロイ(開発モードの管理サーバのみ) Copyright© 2012, Oracle. All rights reserved. 91 WebLogic Serverのアプリケーション・アセンブル形式 • アプリケーション・アセンブル形式 • 一般的には特定のディレクトリ構造をZIP形式にアセンブルする。 • Webアプリケーションは、xxxx.war • EJBアプリケーションは、xxxx.jar • エンタープライズ・アプリケーションは、xxxx.ear • WebLogicでは、ディレクトリを展開した形式でデプロイすることも可能 Webアプリケーション EJBアプリケーション WARファイル JARファイル エンタープライズ・アプリケーション EARファイル Webアプリケーション EJBアプリケーション WARファイル JARファイル Copyright© 2012, Oracle. All rights reserved. 92 [参考] アプリケーションのディレクトリ構造 • JavaEEのアプリケーションは、下記のようなディレクトリ構造でま とめます。 WARファイル <ルート> <ルート> WEB-INF 配布記述子(web.xml) lib EARファイル 使用するライブラリ(JARやZIP) classes サーブレットのクラスファイル META-INF 配布記述子(application.xml) WARファイル EJBがまとめられたJARファイル JSPファイル HTMLファイルやgif、jpgファイル等 リソースファイル J2EEクライアントモジュール etc.. Copyright© 2012, Oracle. All rights reserved. 93 管理コンソールからのデプロイ① • • AdminServerとServer1が起動状態であることを確認します。 WebLogic Server管理コンソールにログインし、「チェンジ・センタ」で「ロックして編集」 ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 94 管理コンソールからのデプロイ② • • 「ドメイン構造」- 「デプロイメント」を選択します。 画面右側の「デプロイメントのサマリ」で、「インストール」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 95 管理コンソールからのデプロイ③ • • アプリケーションのファイルを指定します。 「C:¥HandsOnFiles¥Emp.ear」を指定して「次へ」ボタンを選択してください。 C:¥HandsOnFiles¥Emp.ear Copyright© 2012, Oracle. All rights reserved. 96 管理コンソールからのデプロイ④ • そのまま「次へ」ボタンを選択してください。 Copyright© 2012, Oracle. All rights reserved. 97 管理コンソールからのデプロイ⑤ • • アプリケーションの配布先のサーバを指定します。 「Server1」のみチェックして「次へ」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 98 管理コンソールからのデプロイ⑥ • アプリケーションの名前が、「Emp」であることを確認して「終了」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 99 管理コンソールからのデプロイ⑦ • 「チェンジ・センタ」で「変更のアクティブ化」ボタンを選択してデプロイ操作を確定させま す。 Copyright© 2012, Oracle. All rights reserved. 100 管理コンソールからのアプリケーション起動① • 「すべての変更がアクティブ化されました。再起動は不要です。」のメッセージを確認し た後、「Emp」の左横のチェックBOXにチェックをして、「起動」-「すべての要求を処理」を 選択します。 Copyright© 2012, Oracle. All rights reserved. 101 管理コンソールからのアプリケーション起動② • 「はい」ボタンを選択します。 Copyright© 2012, Oracle. All rights reserved. 102 管理コンソールからのアプリケーション起動③ • デプロイメント表で「Emp」の「状態」が「アクティブ」になったことを確認します。 Copyright© 2012, Oracle. All rights reserved. 103 アプリケーションの実行 • • Webブラウザを起動し、http://localhost:7002/ EmpWeb を指定します。 入力エリアに「A」を入力して「Search」ボタンを押下し、アプリが正常に実行され ることを確認します。 検索結果例 Copyright© 2012, Oracle. All rights reserved. 104 管理コンソールからのアプリケーション停止 • 「デプロイメント」表で停止するアプリケーションをチェックして「停止」ボタン- 「直ちに強 制停止」を選択します。確認要求画面で、「はい」を選択します。 Copyright© 2012, Oracle. All rights reserved. 105 管理コンソールからのアンデプロイ • • • 「チェンジセンタ」で「ロックして編集」ボタンを選択します。 「ドメイン構造」から「デプロイメント」を選択して、「デプロイメント」表でアンデプロイする アプリケーションの状態が「準備完了」であることを確認します。その後、Emp.earの行 のチェックボックスをチェックし、「削除」ボタンを選択します。確認要求画面で、「はい」を 選択します。 「チェンジセンタ」で「変更のアクティブ化」ボタンを選択してアンデプロイを確定させます。 Copyright© 2012, Oracle. All rights reserved. 106 Questions.. Copyright© 2012, Oracle. All rights reserved. 107 Copyright© 2012, Oracle. All rights reserved. 第82回 夜な夜な! なにわオラクル塾 WebLogic Server勉強会@大阪 <Insert Picture Here> JRockit Flight Recorderを活用しよう! 2012年5月9日 日本オラクル株式会社 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。 また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことは できません。以下の事項は、マテリアルやコード、機能を提供することをコミットメン ト(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さ い。オラクル製品に関して記載されている機能の開発、リリースおよび時期につい ては、弊社の裁量により決定されます。 OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。 文中の社名、商品名等は各社の商標または登録商標である場合があります。 Copyright ©2012, Oracle. All rights reserved. 2 アジェンダ JRockit Flight Recorderクイックレビュー 目的や仕組み 開始、終了方法 イベント、テンプレート 製品ライセンス(重要!) JRockit Flight Recorderのユースケース(デモ) 課題1: ホットスポットを探す 課題2: レイテンシー調査 課題3: GCの調査 Copyright ©2012, Oracle. All rights reserved. 3 目標 JRockit Flight Recorderの目的、使用方法を理解し、デモを 通じて適用イメージを体感する。 ステップ1 (クイックレビュー) JRokit JVM, JRockit Flight Recorder, イベント、テンプレート、Mission Controlの概要を理解する。 ステップ2 JRockit Flight Recorderのデモから活用イメージを体感 Copyright ©2012, Oracle. All rights reserved. 4 JRockit Flight Recorderクイックレビュー 目的や仕組み、記録の開始、終了方法 イベント、テンプレート 製品ライセンス(重要!) Copyright ©2012, Oracle. All rights reserved. 5 JRockit JDKとは? 概要 Oracleが提供&サポートするJava SE完全準拠のJava開発・実行環境 サーバサイド用途専用に設計された高信頼性のJVM ※現在はクライアントサイド用途にも対応 Intelアーキテクチャ(Xeon, Itanium2)へ最適化された業界最高速のJVM ※現在はSparc版も提供 歴史 1998 年 スウェーデン アピールバーチャルマシン より初版がリリース 2002 年 BEA が アピールバーチャルマシン を買収 2008 年 Oracle が BEAを買収 Java SE との互換性 java –version でベースとなる Java SE のバージョンを表示 R27.6.5 java version "1.6.0_14" Java(TM) SE Runtime Environment (build 1.6.0_14-b08) BEA JRockit(R) (build R27.6.5-32_o-121899-1.6.0_14-20091001-2107-windows-ia32, compiled mode) R28.0.1 java version "1.6.0_20" Java(TM) SE Runtime Environment (build 1.6.0_20-b02) Oracle JRockit(R) (build R28.0.1-21-133393-1.6.0_20-20100512-2132-windows-ia32, compiled mode) JRockit JDKに含まれる各種ツール、ライブラリ(JRE等)は基本的にSun Java VMと同一だが、Java SEでは定義されていない部分(ネーティブコード 生成・最適化、メモリ管理、デッドロック検出、管理用コマンド、GUIベースの 監視ツール等)を固有実装 Copyright ©2012, Oracle. All rights reserved. JRockitのコード生成戦略 プラットフォーム非依存性を損なわずに高速性を実現 バイトコードを1ステップずつ毎回解釈しながら実行するインタプリタ方 式は低速なのでもとより不採用 全バイトコードを事前にネーティブコード化するAOT(Ahead-of-time Compilation)方式はプラットフォーム間の移植性を損なうので不採用 サーバサイドで実行されるアプリケーションの特徴を考慮 大部分のロジックは静的であり、実行時に変更されることは稀である 同一のロジックが長時間に渡って繰り返し実行される ネーティブコード生成・最適化のコストは、実行時に十分ペイ できると判断し、JRockitでは以下の方針を採用 初回実行時にネーティブコードを生成 実行時統計からのフィードバックをもとにネーティブコードをさらに最適 化 Copyright ©2012, Oracle. All rights reserved. 7 JRockitのGCモードの選択におけるトレードオフ 動的GC 静的GC △動作モードの切替オーバヘッド有り ○動作モードの切替オーバヘッド無し ○指針のみ選択すれば自動チューニング △モード選択とチューニングが必要 △GCログが見にくい ○GCログが見やすい シングルスペースGC 世代別GC ○オブジェクトの移動コストが低い △オブジェクトの移動のコストがやや高い △短寿命オブジェクトが多い場合は不適 ○短寿命オブジェクトが多い場合に最適 コンカレントGC パラレルGC ○GCによる停止時間が理論上最小 △GCによるアプリの一時停止が発生する △スループットは若干低下する ○アプリのスループットは理論上最高 Copyright ©2012, Oracle. All rights reserved. 8 障害パターンと調査方法(一般) 現象 システム的原因 調査手段 問題点 マシンクラッシュ OSクラッシュ システム停止 コアダンプ 落ちた瞬間の情報のみ サーバログ ログに有益な情報が 出ているとは限らない JVMクラッシュ Out of Memory GCログ スローダウン メモリの利用状況と GC発生状況が分かるのみ 確固たる情 報が得られ ず、デバッ グログを仕 掛けたり、 推測による アプリ修正 をして再現 待ち ・・・迷宮入 り GC頻発 スレッドダンプ 障害直前のダンプは大抵取れてない スタックスレッド ソースコード 運用担当者が見ても分からない アプリ不具合 Copyright ©2012, Oracle. All rights reserved. 9 障害パターンと調査手段(JFR利用時) 現象 システム的原因 調査手段 循環バッファ マシンクラッシュ OSクラッシュ コアダンプ システム停止 サーバログ Out of Memory GCログ スローダウン GC頻発 スレッドダンプ スタックスレッド + JRockit Flight Recorder JVMクラッシュ 調査に必要 な情報が Flight Recorderで 既に取得で きているた め、速やか に問題を特 定し修正 ソースコード アプリ不具合 Copyright ©2012, Oracle. All rights reserved. 10 JRockit Flight Recorder + Mission Control Client JVMの挙動の常時記録と分析 独自の低負荷技術により本番環境での常時記録を実現 記録時のオーバヘッドは一般的に 2% 以下 記録した情報を自動ファイル出力 迅速な原因究明を支援するGUIツール ヒープメモリ利用率の増加傾向 ヒープメモリを占めるオブジェクトの割合と増加率 1. トラブルの確実な原因追究を 「遡って」 実施可能 2. 障害発生→改善のサイクルと手間を大きく短縮化 Copyright ©2012, Oracle. All rights reserved. JRockit Flight Recorderの特長 New Data JRockit R28からの新機能 JVMの常時診断 低オーバヘッド(0.5~2%) JRockitの既存のカウンタを利用 Time Flight Recording JVM内の”循環バッファ”に診断データを保持 新しいデータが入ってくると、古いデータは破棄 される JVMだけでなく、WebLogic Server、および WebLogic Server上のアプリからのイベントも常 時収集 JRockit Mission Controlで分析 従来のJRMC Runtime Analyzer とLatency Analyzer機能では不可能だった過去に遡っての 分析が可能に! Copyright ©2012, Oracle. All rights reserved. Old Data 12 JRockit Flight Recorder のアーキテクチャ JRockit JVM Applicati Applicati on onアプリ イベント JVM Runtime ルールに基づく ダンプトリガー WLDF ダンプ依頼 jrcmd イベント ダンプ依頼 WLST Flight Recorder Runtime ダンプ依頼 JRockit Mission Control 循環バッファー 新しいデータ ダンプ ダンプ解析 あふれたら移動 Thread Buffer Global Buffer あふれたら移動 古いデータ 廃棄 Disk File Copyright ©2012, Oracle. All rights reserved. 13 JRockit Flight Recorderの記録を開始、終了 コマンド行に指定する場合の例 一時データを/var/log/jfrディレクトリに格納し、最低でもアプリケーション実 行の最後の5分間分のデータを確保するようなデフォルト記録を有効にする場 合 XX:FlightRecorderOptions=defaultrecording=true,disk=true,repository=/var/log/jfr,maxag e=5m 注:格納されるデータ量は絶対バイト数または有効期間のいずれかで設定 • 最大サイズの設定: maxsize=<size> 例: 5m、 k(キロバイト)、m(メガバイト)およびg(ギガバイト) • 最大有効期間の設定: maxage=<age> 例:10s、s(秒)、m(分)、h(時)またはd(日) jrcmdコマンドで開始、確認、終了する場合 jrcmd <pid> start_flightrecording duration=60s filename=myrecording.jfr jrcmd <pid> check_flightrecordin jrcmd <pid> stop_flightrecording recording=1 (パラメータはcheck_flightrecordinのステータス) Copyright ©2012, Oracle. All rights reserved. 14 JRockit Flight Recorderの実体は”イベント”にあり Flight Recorderは、実行中に発生するイベントを記録 イベントは、関連付けられたデータを持つ個別のデータ・ポイント 特定の時間に発生したCPU負荷またはロックを待機中のスレッドなど、実 行中に発生する記録可能な現象 イベント・タイプはリレーショナル・キーによって参照され、JVMまたはアプリ ケーションでどのタイプのサブシステムに所属するかを示す。 すべてのJVM内部システムのイベント・タイプのリレーショナル・キーは、 http://www.oracle.com/jrockit/jvmで始まる。 JVMには様々なサブシステムがあり、vmはランタイム、osは実行している オペレーティング・システム、javaは実行中のJavaプログラムをそれぞれ参 照 記録するデータ量を制御するためにイベント・タイプをコンフィグレーション *有効: 特定の記録の各イベント・タイプを有効または無効 *しきい値: しきい値を設定して、期間を持つイベントをフィルタ *スタック・トレース: イベントが生成されるポイントの各イベントのスタック・トレース情報 を有効または無効 *リクエスト期間: JRockit Flight Recorder実行環境によってリクエストされるリクエスト 可能なイベントの頻度を設定 Copyright ©2012, Oracle. All rights reserved. 15 イベントの例 名前 例外スロー 説明 パス java/exception_throw ファイル読取り Java FileInputStream/RandomAccessFile/FileCha nnelからの読取り Java FileInputStream/RandomAccessFile/FileCha nnelへの書込み Javaモニターへのエントリ Javaモニターを待機中 オブジェクトが割り当てられ、新しいスレッド・ ローカル領域(TLA)の取得が必要になりました java/file_read TLAの外部で割り当てられたオブジェクト オブジェクトがTLAの外部で(ヒープに直接)割 り当てられました java/object_alloc_outside_tla ソケット読取り Java Socket/SocketChannelからの読取り java/socket_read ソケット書込み Java Socket/SocketChannelへの書込み java/socket_write スレッドによる割当て スレッドによって割り当てられたバイト数および TLAの合計 java/statistics/alloc_thread すべてのスレッドによる割当て すべてのスレッドに関して、割り当てられたバイ java/statistics/alloc_total ト数およびTLAの合計数のサマリー 例外カウント Javaロック・プロファイリングのスナップショット スローされた例外の累積数 java/statistics/exceptions クラスのJavaロックに関する詳細なプロファイリ java/statistics/lock_profile ング情報 java/statistics/threads ファイル書込み Javaモニター・エントリ Javaモニター待機 新規TLAで割り当てられたオブジェクト Javaスレッド統計 java/file_write java/monitor_enter java/monitor_wait java/object_alloc_in_new_tla http://docs.oracle.com/cd/E22646_01/doc.40/b61448/app_events.htm 参照ください。 Copyright ©2012, Oracle. All rights reserved. テンプレートの指定方法 テンプレート名 説明 code 詳細なコンパイラ・ログを有効にするための追加の設定。 default 非常に低いパフォーマンス・オーバーヘッド用にチューニングされた、常時動作している本番の 使用で推奨されるデフォルトの設定。 freemem メモリー不足および断片化の問題をデバッグする追加の設定。 full すべてのサブシステムのすべてのイベントの収集が有効となります。警告: パフォーマンス・オー バーヘッドが非常に高くなります。 io leak locks memory Java I/Oの詳細ログを有効にする追加の設定。 メモリー・リークのデバッグ用の追加の設定。 同期の詳細なログを有効にするための追加の設定。 GC/メモリー管理の詳細なログを有効にするための追加の設定。 off すべてのサブシステムのすべてのイベントを無効にします。 profile プロファイリング記録の作成に推奨される設定。情報の量とパフォーマンス・オーバーヘッドの最 適なバランスを実現。 sample コードのホットスポット・サンプリングを有効にする追加の設定。 semirefs java.lang.ref.Reference objectsとそのサブクラスをデバッグするための追加の設定。 記録を開始するときに、settingsパラメータでテンプレートを指定します。 例: jrcmd <pid> start_flightrecording duration=5min settings=io または -XX:FlightRecorderOptions=defaultrecording=true,settings=default,settings=freemem Copyright ©2012, Oracle. All rights reserved. 17 Oracle WebLogic Server ライセンスと使用可能な機能 WebLogic Server Standard Edition WebLogic Server Enterprise Edition • WebLogic Server • (冗長構成は可能) • Development Tools • WebLogic Server SE + ・ TopLink ・ Oracle ADF ・ OEPE • Oracle JRockit • Oracle Fusion Middleware Control • Oracle WebTier • • • 高可用性機能 • Httpセッションレプリ • サーバ移行 など • 高度な監視/診断機能 ・JRockit Mission Control ・ JRockit Flight Recorder ・ JVM Diagnostics ・ Grid Controlによる監視 Oracle HTTP Server Oracle WebCache Web APサーバとして必要な ほとんどの機能を含んだ エディション。複数サーバでの 冗長構成も可能(Httpセッション レプリは不可) WLS SEの機能に加え、 Httpセッションレプリなど 多くの高可用性機能や JRockit Flight Recorderなど 高度な診断機能を付加。 Copyright ©2012, Oracle. All rights reserved. WebLogic Suite • WebLogic Server EE + • WebLogic Real Time • Coherence Enterprise Edition • WebLogic Operations Control • IAS EE (Forms, Reports, …) • Forms, Reports for WebLogic • Management Pack for Coherence WLS EEの機能に加え、 レスポンスタイム安定化や性能向上 に貢献するWebLogic Real Timeや Coherence EEなど付加 18 JRockit Flight Recorderのユースケース 課題1: ホットスポットを探す(デモ) 課題2: レイテンシー調査(デモ) 課題3: GCモニタ-調査(デモ) Copyright ©2012, Oracle. All rights reserved. 19 課題1: ホットスポットを探す(デモ) あるアプリケーションを調査しています。アプリケーション内で 実行に最も時間を要する部分(ホットスポット)がどこにある かをJRockit Flight Recorderを使用して調査してください。 どのメソッドが最もホットなメソッドですか? そのメソッドはどこから呼び出されていますか? このアプリケーションのパフォーマンスを改善するための最適化をどの メソッドで行うのがよいでしょうか? Copyright ©2012, Oracle. All rights reserved. 20 課題2: レイテンシー調査(デモ) CPU使用率は高くないにもかかわらず期待したスループット が出ないアプリケーションがあります。これはスレッド動作に失 速の原因が潜んでいる可能性があります。JRockit Flight Recorderを使用して原因を調査してください。 どのタイプのイベントが多くを占めているでしょうか? どのクラスがスレッドをブロックしているロックでしょうか? どこでこのイベントが発生しているでしょうか? Copyright ©2012, Oracle. All rights reserved. 21 課題3: GCの調査(デモ) あるアプリケーションの動作中のGCの状態をモニターします。 GCの動きに不自然なところがないか、分析しましょう。 GCの経緯をモニターしながらアプリケーションのメモリ割り当てに注目 してください。 どこでメモリ割り当てが発生しているでしょうか? Copyright ©2012, Oracle. All rights reserved. 22 Copyright ©2012, Oracle. All rights reserved. Copyright ©2012, Oracle. All rights reserved. 24