<Insert Picture Here>
OracleユーザーのためのWebLogic 入門
日本オラクル株式会社 製品事業統括 Fusion Middleware事業統括本部 担当シニアマネージャ 新井 庸介
Copyright© 2012, Oracle. All rights reserved. 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright© 2012, Oracle. All rights reserved.
Agenda
• アプリケーションサーバーとは
• Oracle Databaseユーザーにとってのアプリケーションサーバーとは
• Oracle WebLogic Server
• Oracle DatabaseユーザーのためのWebLogic Server
• まとめ
3
Copyright© 2012, Oracle. All rights reserved.
アプリケーションサーバーとは
<Insert Picture Here>
Copyright© 2012, Oracle. All rights reserved.
アプリケーションサーバーとは
5
ユーザからの要求を受け付けて、データベースなどの業務システムの処理に橋渡しする機能を持ったサーバソフトウェア。ミドルウェアの一種で、ユーザが利用するWebブラウザなどのクライアントと、データベースなどの中間に位置する(3階層システム)。
プログラムの実行環境やデータベースへの接続機能、トランザクション管理機能などを持ち、ビジネスロジックを実装しているのがアプリケーションサーバである。
クライアントやバックエンド側にビジネスロジックを実装する方式(2階層システム)に比べ、システムの変更や更新、増強などが容易で、柔軟性が高い。業務プロセスが少しでも変わったら全社員のPCを更新しなければならなかったりといった悩みを解消してくれる。
http://e-words.jp/w/E382A2E38397E383AAE382B1E383BCE382B7E383A7E383B3E382B5E383BCE38390.html
e-Wordsより
クライアント アプリケーションサーバー データベース
•ビジネスロジックの実行
•データベースへの接続
•トランザクションの管理 等々
Copyright© 2012, Oracle. All rights reserved.
Java EE アプリケーションサーバーとは
• Java EEとは: Javaアプリケーションサーバーが満たすべき標準仕様群
Webアプリケーションの開発標準(コード記法, 各種API, 通信規約, etc), セキュリティ仕様, 分散トランザクション仕様, Webサービスの仕様、等々
Java EEは数年に1度改訂され、新たに仕様が追加されたり、既存の仕様が見直される。2011年現在の最新は”Java EE 6”
(ご参考)Java標準仕様にはEEの他にSE(Java VMの標準仕様)及びME(組み込みJavaソリューションのための標準仕様)がある
• つまり
Java EE アプリケーションサーバー=Java EE標準仕様を満たす機能を持つJavaアプリケーションサーバー
6
Copyright© 2012, Oracle. All rights reserved.
Java EE 仕様は誰が決めているのか?
• Java 標準仕様(SE/EE/ME)はJavaコミュニティ(JCP)を通じて決定される
JCP (Java Community Process): Oracleが主催するJavaの標準技術仕様の策定と標準化のための機関。
JCPは16名/社の中核メンバー(Executive Committee, 任期3年、メンバーによる投票にて選出)と約1000名/社のメンバーから構成される
JCPメンバーは標準仕様の提案、及びしreviewする権限を、Executive Committeeはこれを最終的に承認する権限を持つ
7
Java標準仕様のメリット
• オープンである=より良い仕様の策定
仕様が1ベンダーの意図に左右されない, ベンダーだけでなくユーザーも参加し幅広く議論
• 標準仕様である
• ベンダ・ロックインの排除、技術の習得が容易
Copyright© 2012, Oracle. All rights reserved.
(ご参考)最近の標準仕様について
• JSR-336: Java SE7 Release Contents
内容: Java SE7 としてリリースする仕様群を決定
Expert Group: (Spec Lead) Oracle (Group Member)Google, Redhat
• JSR-316: Java EE6 Specification
内容: Java SE6 としてリリースする仕様群を決定
Expert Group: (Spec Lead) Oracle (Group Member)Ericson, IBM, NCSoft,
Oracle, OW2, Peking University, Redhat, SAP, SpringSource, Sybase, 他
(全25団体/個人)
• JSR-348: Towards a new version of the Java Community Process
内容: JCP組織、及び仕様策定プロセスの見直し(透明性の向上、参加のし易さ、ガバナンス、など)
Expert Group: (Spec Lead) Oracle (Group Member)AT&T,Eclipse
Foundation, Fujitsu, Google, HP, IBM, Intel, Nokia, Oracle, Redhat, RIM, T-
Mobile, Vodafone, 他
(全30団体/個人)
※JSR: (Java Specification Request): 標準仕様を記述した公式文章
8
Copyright© 2012, Oracle. All rights reserved.
Java EEの最新動向と今後の方向性
• Java EE 6(2009年末 仕様決定) テーマ: 開発生産性の向上
コード量及び設定ファイルの削減
統合開発フレームワークの提供
• Java EE 7(2012冬 仕様決定予定) テーマ: クラウド
アプリケーションとリソースの独立
マルチテナント
大規模環境向け技術の標準化
9
Copyright© 2012, Oracle. All rights reserved.
Java EEアプリケーションサーバーの
最新動向と今後の方向性 • 最新動向: Java EE 6対応
Oracle WebLogic 12c
Oracle GlassFish 3
• 今後の方向性: トレンド
クラウド
マルチテナント、集約
モバイル
ハイトランザクションへの対応
より高い性能
より高い可用性
Java EE 6 対応済!
10
Copyright© 2012, Oracle. All rights reserved.
Oracle Databaseユーザーにとっての
アプリケーションサーバーとは
<Insert Picture Here>
Copyright© 2012, Oracle. All rights reserved.
アプリケーションサーバーに対する関心#1
① DBとの接続、連携
• どうやって接続するの?ODBC? RACの場合の考慮点は?
• チューニングは?高い可用性を実現するには?…
12
Copyright© 2012, Oracle. All rights reserved.
アプリケーションサーバーに対する関心#1
②問題への対応(障害、性能劣化)
• 問題をどうやって切り分ける? アプリケーションサーバーとDBのどっちに原因が?
• 性能劣化はどっちが悪いの?アプリケーションサーバーとDBのどっちを直すべき?
ORA-xxx
遅い、重い
13
Copyright© 2012, Oracle. All rights reserved.
アプリケーションサーバーに対する関心#1
③システム全体の可用性
• DB層だけでなく、システム全体の可用性を高め、システムとして安定稼働させるにはどうすれば?
DBは高可用性だが、システム全体は?
14
Copyright© 2012, Oracle. All rights reserved.
Oracle WebLogic Server
<Insert Picture Here>
Copyright© 2012, Oracle. All rights reserved.
Oracle WebLogic Server The World’s Leading Application Server
• 15年にわたる製品実績 Javaと同じ1996年に誕生。成熟した製品機能 (例 クラスタ機能: ver.4.5から7世代にわたって改良し提供)
• 市場シェアNo.1
世界シェアの2/5以上(Gartner)
• 特徴
1. Java標準仕様に常に追随
2. Java標準仕様を超える、ミッションクリティカル環境のための高い機能を併せて提供
16
Copyright© 2012, Oracle. All rights reserved.
Oracle WebLogic Server 12c
Global announcement !
去る12/1, Oracle WebLogic Serverの次のメジャーバージョン”12c”について、ついに
グローバルでアナウンスがなされました
17
Copyright© 2012, Oracle. All rights reserved.
Oracle WebLogic Server 12c とは 特徴
1. Java EE 6, Java SE 7 対応による
高い開発生産性、保守性
2. Oracle DBとの高度な連携
3. 業務やサービスを止めない
高い信頼性
WebLogic Server
12c
18
Copyright© 2012, Oracle. All rights reserved.
Oracle Databaseユーザーのための
WebLogic Server
<Insert Picture Here>
Copyright© 2012, Oracle. All rights reserved.
Agenda
• Oracle DBユーザが持つアプリケーションサーバーに対する関心についてのWebLogicの機能を紹介します
1. DBとの接続、連携
2. 問題への対応(障害、性能劣化)
3. システム全体の可用性
20
Copyright© 2012, Oracle. All rights reserved.
1. DBとの接続、連携
マルチデータソース機能
• 概要
WebLogicのDB接続機能。複数の接続プール(*)を論理的に1つとして扱い。負荷分散やフェイルオーバーを実現する
(*)接続プール: 性能向上のためにDBとの接続を予め一定数張っておく機能。接続
プール自体はメジャーな製品の殆どが提供している機能だが、マルチデータソース(=マルチプール)はWebLogicの独自機能
• 機能
接続の自動閉塞、自動復旧(フェイルオーバー)
障害があった場合、接続プールは自動的に閉塞する(プール内の接続をClean upする)
障害から復旧したら、接続プールは自動的に復旧する(自動的に接続を再確立する)
負荷分散
RACノード間の負荷分散
21
Copyright© 2012, Oracle. All rights reserved.
WebLogic Server
1. DBとの接続、連携
マルチデータソース機能(図解)
• ノード4の障害やService A
の構成変更時(ノード4を外
す)、当該の接続プールは自動的に閉塞する
• ノード4の障害回復やService Aへの復帰の際、
接続プールは自動的に復旧する
• Service Aを利用するアプリAが、無効な接続をつかんでしまうことは無い
Multi Data Source for Service A
Data Source
Data Source
Data Source
Serv
ice A
S
erv
ice A
S
erv
ice A
S
erv
ice A
Data Source
利用不可能なデータソース
Service X
Service X 利用可能なサービス
利用できないサービス
Data Source
Data Source
利用可能なデータソース
アプリA
ノード1
ノード2
ノード3
ノード4
22
Copyright© 2012, Oracle. All rights reserved.
JDBCドライバの負荷分散及びフェイルオーバー機能との違い
• JDBCドライバはWebLogic以外のアプリケーションサーバー(以下App Server)の接続プール機能と統合されていません。よってWebLogic以外では以下の問題が起きる可能性があります
• 自動閉塞
閉塞できないApp Serverの場合、無効な接続が残存しアプリにエラーが返ります
閉塞は出来るが、閉塞した接続と同一数の接続を残存ノードに張りにいく仕様のApp Serverがあります。この場合、結果として想定以上の接続があるノードに集中してしまう可能性があります
• 自動復旧
閉塞後、接続プールに設定した接続数の全てを残存ノードに張ってしまい、接続の復旧ができないケースがあります。この場合、結果として負荷分散が不十分になります
23
Copyright© 2012, Oracle. All rights reserved.
1. DBとの接続、連携
Active GridLink for RAC
• RACノード負荷バランシング RACのノード負荷に合わせ動的に負荷分散
• トランザクション・アフィニティ 複数の更新クエリをRACの1ノードで集中処理し
不要な分散トランザクション処理を抑制
• 高速接続フェイルオーバー ノード障害時やサービス構成変更に即座に対応。DB処理の即時フェイルオーバー、プロアクティブな接続管理
GridLink
WebLogic
GridLink
WebLogic
80% 20%
RAC ノード負荷バランシング
GridLink
WebLogic
GridLink
WebLogic
トランザクション・アフィニティ
XA
GridLink
WebLogic
GridLink
WebLogic
高速接続フェイルオーバー
性能改善 (スループット向上)
リソース利用効率改善
アプリ
安定稼働
12c Update! 11g New!
Copyright© 2012, Oracle. All rights reserved.
Active Grid Link for RACの仕組み WebLogic UCP-RAC モジュール
RAC (1)
サービスA
WLSコネクション・プール
(RACサービスA用)
RAC (2)
サービスA
ON
S c
lient
UCP-RAC モジュール
ONS Daemon
ONS Daemon
WebLogic Server Oracle Database(RAC)
RACサービスに対するポーリングとONSからの通知の双方を活用
ポーリング
死活・負荷状況通知
Oracle JDBCドライバ
25
Copyright© 2012, Oracle. All rights reserved.
2.問題への対応(障害、性能劣化)
Enterprise Manager – オンライン分析
26
アプリケーションの管理
・ユーザー視点での性能監視
・トップダウン・アプローチによる
障害切り分け
・構成管理
・EBS パッチ管理(推奨、履歴管理) ・EBS 環境のクローン
ミドルウェアの管理
・監視(可用性、リソース、性能) ・JVM の詳細分析
・パッチ適用
・構成管理
データベースの管理
・管理(バックアップ、領域追加など) ・監視(可用性、性能、リソース) ・分析、アドバイス、チューニング
・パッチ適用
・構成管理、オブジェクト管理
・機密情報のマスキング
その他の管理
・OS(Unix/Windows/Linux)の監視
・ストレージ(NetApp/EMC)の監視
・構成管理
EBS PSFT Custom Siebel …
アプリケーション
データベース
ストレージ
ミドルウェア
Oracle Enterprise Manager
統合管理
・単一のUI
・環境の比較、コピー
・運用管理ダッシュボード
・レポート(性能、セキュリティ等) ・ユーザーエクスペリエンス監視
Copyright© 2012, Oracle. All rights reserved.
Enterprise Manager
WebLogicからOracle DBにドリルダウンして問題解析
DB待ちが発生している場合、発行しているSQL文まで特定
ボトルネックが発生しているページやメソッドを特定
WebLogicの処理内容をグラフ表示(ロック待機/CPU/DB待機など)
27
Copyright© 2012, Oracle. All rights reserved.
2.問題への対応(障害、性能劣化)
JRockit Flight Recorder - オフラインでの分析
• 従来
28
• JRockit Flight Recorder
Java EE/ISV アプリ
Oracle WebLogic
Server
直近の実行情報を常に記録
Java EE/ISV アプリ
App Server
JVM
Full thread dump Java HotSpot(TM) Client VM (1.5.0_06-64 mixed mode, sharing):
"Low Memory Detector" daemon prio=5 tid=0x0050a600 nid=0x1816a00 runnable [0x00000000..0x00000000]
"CompilerThread0" daemon prio=9 tid=0x00509cb0 nid=0x1816600 waiting on condition [0x00000000..0xf0b06358]
"Signal Dispatcher" daemon prio=9 tid=0x00509840 nid=0x1816200 waiting on condition [0x00000000..0x00000000]
"Finalizer" daemon prio=8 tid=0x00509020 nid=0x1810200 in Object.wait() [0xf0a04000..0xf0a04ab0]
at java.lang.Object.wait(Native Method)
- waiting on <0x26580360> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x26580360> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x00508c30 nid=0x180f200 in Object.wait() [0xf0983000..0xf0983ab0]
at java.lang.Object.wait(Native Method)
- waiting on <0x26580a50> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:474)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x26580a50> (a java.lang.ref.Reference$Lock)
"main" prio=5 tid=0x005013a0 nid=0x1804c00 waiting on condition [0xf07ff000..0xf08002c0]
at java.lang.Thread.sleep(Native Method)
at ThreadTest1.method1(ThreadTest1.java:7)
at ThreadTest1.main(ThreadTest1.java:4)
"VM Thread" prio=9 tid=0x00508450 nid=0x1803c00 runnable
"VM Periodic Task Thread" prio=9 tid=0x0050bcb0 nid=0x1813000 waiting on condition
"Exception Catcher Thread" prio=10 tid=0x005015e0 nid=0
問題解決に必要な情報の多くは消失
原因究明に多くの時間が必要
履歴を含めた情報を低負荷で記録し自動出力
迅速な原因究明を支援するGUIツール
1. トラブルの確実な原因追究を 「遡って」 実施可能
2. 障害発生→改善のサイクルと手間を大きく短縮化
5%以下の 低負荷
自動記録
JRockit VM
ダンプを解析…
Copyright© 2012, Oracle. All rights reserved.
JRockit Flight Recorder WebLogic→Oracle DB: オフラインでも問題解析
稼働状況を常に記録。記録の中から障害発生時にフォーカス
記録を更に細かく絞り込み、ある瞬間に実行されていたSQLを特定
Copyright© 2012, Oracle. All rights reserved.
WebLogic Server
3. システム全体の可用性
ワークマネージャ – 流量制御, 過負荷保護
HWリソースのグループ化
• リクエストに対する処理スレッドの割り当てを自動制御
• Webアプリケーション単位またはURLグループ単位に、最大スレッド数、最小スレッド数、受け入れ可能トランザクション数を設定できる
アプリケーションA
スレッドプール
アプリケーションB
アプリケーションC
30
Copyright© 2012, Oracle. All rights reserved.
ワークマネージャで出来ること
• 暴走からの保護
特定のアプリケーションがすべてのスレッドを占有し、他のアプリケーションも含めてサービス停止となるような状況を阻止できる
• 目標応答時間
性能要求に応じて目標応答時間を設定することで、WebLogicに自動チューニングを行わせることが可能
• 管理アプリ
HWリソースが枯渇していても、 Adminが使うような管理アプリに対し最小限の実行スレッドの割当を保証し緊急時に備える
31
Copyright© 2012, Oracle. All rights reserved.
3. システム全体の可用性
Oracle Coherence – DBアクセスのオフロード
• Oracle Coherence
インメモリ・データグリッド製品。データをメモリで分散管理し、性能、拡張性、耐障害性を向上する
• Coherenceで出来ること
DBへのアクセス負荷軽減
キャッシュによる参照アクセス削減
非同期連携(複数の更新をサマリーしてまとめる)による更新アクセス削減
耐障害性の向上
システム全体の速度向上
Oracle Coherence
32
Copyright© 2012, Oracle. All rights reserved.
Active Cache – インメモリソリューションによる性能向上
• Coherenceと連携しクラスタリング性能を向上するWebLogic機能
• メリット 1.安定性向上
• WebLogicのメモリの空き容量を安定確保
• クラスタ処理をCoherenceに担わせ、稼働を安定させる
2.性能向上
33
Weblogic Server with Coherence
■ Without Coherence*Web
■ With Coherence*Web
■ With full Coherence
Copyright© 2012, Oracle. All rights reserved.
3. システム全体の可用性
Oracle JRockit JVM – 世界最速のJVM
• オラクルが提供するJava SE完全準拠の高性能Java VM
インテルアーキテクチャに最適化した業界最速のJVM(現在はSPARC版も提供)
安定性を高める動的/自動メモリ管理
1998年 Ver.1リリースから12年の
利用実績
Oracle JRockit
用途/プラットフォームを絞って高性能
高速性
サーバーサイド利用、Intelアーキテクチャに最適化
安定性
動的GC / JRockit Real time
高い管理性
JRockit Mission Control / JRockit Flight Recorder
Sun JVM
マルチプラットフォーム/デバイス
サーバーサイド, PC, 携帯電話, 組み込み機器, etc, などどんな環境/用途でも同じように動作する
豊富な利用実績
SPECjbb2005 Last updated: Jun. 3 2010
9611262
Oracle JRockit
Linux
6972897
Oracle JRockit
Linux
5534233
Oracle JRockit
Linux
5210501
他社 JVM
AIX
世界最高値
• JRockitとSun JVMとの違い
34
Copyright© 2012, Oracle. All rights reserved.
0
15
30
45
60
75
90
105
120
0 2000 4000 6000 8000 10000 12000 14000 16000 18000
3. システム全体の可用性
JRockit Real Time (JRRT) – GC遅延の抑止
• JRRTが出来ること ガベージコレクションによる処理遅延の平準化
応答性能保証
• JRRTのメリット 突発的な遅延を抑止し安定稼働
応答性能の平準化
35
ガベージコレクションの影響によるレスポンスタイムの劣化、タイムアウトの発生
0
15
30
45
60
75
90
105
120
0 2000 4000 6000 8000 10000 12000 14000 16000 18000
従来のJava
JRockit Real Time
• アプリケーションの修正不要
• 汎用HWとOS利用可 (特殊なHWやOSは不要)
Copyright© 2012, Oracle. All rights reserved.
まとめ
• 本日ご紹介した内容: Oracle DBユーザーのためのWebLogic機能
1. DBとの接続、連携
マルチデータソース、Active GridLink for RAC による連携
自動閉塞/復旧、高度な負荷分散
2. 問題への対応(障害、性能劣化) Enterprise ManagerとJRockit Flight Recorderによる
WebLogic+DBのドリルダウン分析
3. システム全体の可用性
ワークマネージャ、Coherence、JRockitによる、
安定稼働のための様々な機能
36
Copyright© 2012, Oracle. All rights reserved. 37
http://blogs.oracle.com/oracle4engineer/entry/otn_ondemand_questionnaire
OTNオンデマンド 感想
OTNセミナーオンデマンド
コンテンツに対する ご意見・ご感想を是非お寄せください。
上記に簡単なアンケート入力フォームをご用意しております。
セミナー講師/資料作成者にフィードバックし、 コンテンツのより一層の改善に役立てさせていただきます。
是非ご協力をよろしくお願いいたします。
Copyright© 2012, Oracle. All rights reserved.
OTNセミナーオンデマンド 日本オラクルのエンジニアが作成したセミナー資料・動画ダウンロードサイト
掲載コンテンツカテゴリ(一部抜粋)
Database 基礎
Database 現場テクニック
Database スペシャリストが語る
Java
WebLogic Server/アプリケーション・グリッド
EPM/BI 技術情報
サーバー
ストレージ
例えばこんな使い方
• 製品概要を効率的につかむ
• 基礎を体系的に学ぶ/学ばせる
• 時間や場所を選ばず(オンデマンド)に受講
• スマートフォンで通勤中にも受講可能
100以上のコンテンツをログイン不要でダウンロードし放題
データベースからハードウェアまで充実のラインナップ
毎月、旬なトピックの新作コンテンツが続々登場
38
OTNオンデマンド
コンテンツ一覧 はこちら http://www.oracle.com/technetwork/jp/ondemand/index.html
新作&おすすめコンテンツ情報 はこちら http://oracletech.jp/seminar/recommended/000073.html 毎月チェック!
Copyright© 2012, Oracle. All rights reserved.
オラクルエンジニア通信 オラクル製品に関わるエンジニアの方のための技術情報サイト
39
オラクルエンジニア通信
技術コラム
アクセス ランキング
特集テーマ Pick UP
技術資料
性能管理やチューニングなど月間テーマを掘り下げて詳細にご説明
インストールガイド・設定チュートリアルetc. 欲しい資料への最短ルート
他のエンジニアは何を見ているのか?人気資料のランキングは毎月更新
SQLスクリプト、索引メンテナンスetc. 当たり前の運用/機能が見違える!?
http://blogs.oracle.com/oracle4engineer/
Copyright© 2012, Oracle. All rights reserved.
oracletech.jp ITエンジニアの皆様に向けて旬な情報を楽しくお届け
40
oracletech
Viva! Developer
セミナー
スキルアップ
製品/技術 情報
ORACLE MASTER! 試験頻出分野の模擬問題と解説を好評連載中
Oracle Databaseっていくら?オプション機能も見積れる簡単ツールが大活躍
基礎から最新技術まで お勧めセミナーで自分にあった学習方法が見つかる
全国で活躍しているエンジニアにスポットライト。きらりと輝くスキルと視点を盗もう
http://oracletech.jp/
Copyright© 2012, Oracle. All rights reserved. 41
あなたにいちばん近いオラクル
Oracle Direct まずはお問合せください
Web問い合わせフォーム フリーダイヤル
0120-155-096
※月曜~金曜 9:00~12:00、13:00~18:00 (祝日および年末年始除く)
専用お問い合わせフォームにてご相談内容を承ります。 http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28
※フォームの入力にはログインが必要となります。 ※こちらから詳細確認のお電話を差し上げる場合がありますので ご登録の連絡先が最新のものになっているかご確認下さい。
システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。 ステム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。
Oracle Direct
Copyright© 2012, Oracle. All rights reserved.
Copyright© 2012, Oracle. All rights reserved. 43