...

WebLogic Server

by user

on
Category: Documents
337

views

Report

Comments

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
Fly UP