開発/デプロイ効率化のためのWebLogicの機能
 

開発/デプロイ効率化のためのWebLogicの機能

on

  • 6,038 views

Oracle WebLogic Server は ...

Oracle WebLogic Server は Javaアプリケーションサーバーだ、ということは知っていても、その便利機能を知らずに使えていない人は結構います。開発時の有効な機能、デプロイの効率化のための機能、診断のための機能を改めてご紹介します。

Statistics

Views

Total Views
6,038
Slideshare-icon Views on SlideShare
6,037
Embed Views
1

Actions

Likes
2
Downloads
48
Comments
1

1 Embed 1

http://paper.li 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Thank you!

    http://theelectroniccigarettes.biz/ electronic cigarette
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    開発/デプロイ効率化のためのWebLogicの機能 開発/デプロイ効率化のためのWebLogicの機能 Presentation Transcript

    • <Insert Picture Here>開発/デプロイ効率化のために知っておきたいWebLogic Server の機能日本オラクル株式会社Fusion Middleware 事業統括本部
    • 以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。Oracle、PeopleSoft、JD Edwards、及びSiebelは、米国オラクル・コーポレーション及びその子会社、関連会社の登録商標です。その他の名称はそれぞれの会社の商標の可能性があります。 Copyright Oracle Corporation Japan, 2010. All rights reserved. 2
    • WebLogic Server ダウンロード• OTN から入手可能 – Oracle Fusion Middleware として表示されています Oracle Fusion Middleware 11g (inc. Oracle WebLogic Server) Copyright Oracle Corporation Japan, 2010. All rights reserved. 3
    • WebLogic Server ダウンロード Copyright Oracle Corporation Japan, 2010. All rights reserved. 4
    • WebLogic Server ダウンロード• サーバー環境のみ – ZIP版 : WebLogic Server 単体 – パッケージ版 : WebLogic Server + Coherence• 開発環境とともに – パッケージ版 : WebLogic + OEPE + Coherence – JDeveloper版 : WebLogic + JDeveloper (JDeveloper のダウンロードにバンドル) ※ OEPE = Oracle Enterprise Pack for Eclipse Copyright Oracle Corporation Japan, 2010. All rights reserved. 5
    • ドキュメント Copyright Oracle Corporation Japan, 2010. All rights reserved. 6
    • WebLogic Server 構築・運用ガイド Copyright Oracle Corporation Japan, 2010. All rights reserved. 7
    • WebLogic Server 構築・運用ガイド Copyright Oracle Corporation Japan, 2010. All rights reserved. 8
    • 本日の内容• 設計開発・テスト段階 – ZIPインストーラ、開発環境準備 – FastSwap – AppXRay – マルチデータソース – フィルタリング・クラスローダー、JDBCモジュール – Flight Recorder、Memleak• 本番運用段階 – プロダクション再デプロイメント、管理モードデプロイ – ワークマネージャ – Coherence*Web• おまけ – -DserverType=wlx Copyright Oracle Corporation Japan, 2010. All rights reserved. 9
    • 設計開発・テスト段階 Copyright Oracle Corporation Japan, 2010. All rights reserved. 10
    • 開発・テスト段階• 「コーディング、コンパイル、デプロイ、動作確認」の繰り返し→ 煩雑、時間がかかる、重い… ご紹介したい機能 ✔ 展開型デプロイ ✔ FastSwap Copyright Oracle Corporation Japan, 2010. All rights reserved. 11
    • 展開型デプロイ• アーカイブせずにディレクトリ展開の状態でデプロイ –管理コンソールでのデプロイ、Ant の wldeploy タスク、 weblogic.Deployer コマンドのどれでも可能• Eclipse/OEPE の場合 – プロジェクトでのアプリケーションの実行は 「展開型デプロイ+分割開発ディレクトリ」 の手法 で実現【分割開発ディレクトリについて :参考】WebLogicドキュメント・ホーム ▶ Developing Applications ▶ Creating a Split Development Directory EnvironmentWebLogicドキュメント・ホーム ▶ アプリケーションの開発 ▶ 分割開発ディレクトリ環境の作成 Copyright Oracle Corporation Japan, 2010. All rights reserved. 12
    • FastSwap• 通常のステップ コード編集 (コンパイル) ビルド デプロイ テスト• IDEを利用しているケース コード編集 (コンパイル) ビルド+デプロイ テスト• FastSwap コード編集 (コンパイル) テスト メソッド/コンストラクタ/フィールドの追加、削除 … Copyright Oracle Corporation Japan, 2010. All rights reserved. 13
    • FastSwap を利用した開発サイクル コード編集 リロード Copyright Oracle Corporation Japan, 2010. All rights reserved. 14
    • FastSwap による変更の適用• 設定: weblogic-application.xml に記述 <weblogic-application> ... <fast-swap> <enabled>true</enabled> </fast-swap> ... </weblogic-application>• 利用条件 – 開発モードでのみ使用可能 本番モードでは自動的に OFF になる – 展開型デプロイのクラスファイルが対象 (WEB-INF/classes, APP-INF/classes等)【参考】WebLogicドキュメント・ホーム ▶ Deploying Applications ▶ Preparing Applications and Modules for DeploymentWebLogicドキュメント・ホーム ▶ アプリケーションのデプロイメント ▶ アプリケーションおよびモジュールのデプロイメント準備 Copyright Oracle Corporation Japan, 2010. All rights reserved. 15
    • Eclipse/OEPE での FastSwap 利用• weblogic-application.xml の設定• プロジェクトのクラスの出力フォルダ設定を変更 Copyright Oracle Corporation Japan, 2010. All rights reserved. 16
    • 開発・テスト段階• アプリケーション・ファイル間の依存性が複雑化 → 混乱、ミス…• Javaコード・レベルのリファクタリングは使っているが JSP、CSS、XML、リソースファイルは… ご紹介したい機能 ✔ AppXRay Copyright Oracle Corporation Japan, 2010. All rights reserved. 17
    • AppXRay• Oracle Enterprise Pack for Eclipse 組み込み機能• プロジェクト内の依存性の可視化、コード補完/検証機能 – Java、HTML、CSS – JSP/JSTL、Struts、Tiles、JSF – EJB3、 Hibernate – Java リソースバンドル、変数 Copyright Oracle Corporation Japan, 2010. All rights reserved. 18
    • AppXRay• OEPE でプロジェクトを選択し、右クリックメニューから 「Show AppXRay Dependencies」を選択 Copyright Oracle Corporation Japan, 2010. All rights reserved. 19
    • AppXRay によるコード補完や検証JSP/JSFのコード補完タグ属性の補完 Struts の検証例 Copyright Oracle Corporation Japan, 2010. All rights reserved. 20
    • 開発・テスト段階• DBに関連する様々な煩雑な作業 – DBの死活状況を想定したエラー制御 – DBの計画停止や負荷制御のためのクラスタウェア設定 … 検討すべき機能 ✔ マルチデータソース ✔ Coherence Copyright Oracle Corporation Japan, 2010. All rights reserved. 21
    • マルチデータソース • アプリケーションからはひとつのデータソースとして利用 Service A Service A Service A • Oracle RAC でも HA構成でも利用可能 • クラスタウェア不要 WebLogic Server JNDI Tree Internal Clients Lookup Multi Data Source (e.g. Servlets) Data Source for Service A Data Source Data Source Lookup Service B External Clients Data Source Data Source Data SourceData Source 利用可能なデータソース Multi Data Source for Service BData Source 利用不可能なデータソース Service A Service B Data SourceService X 利用可能なサービス Data SourceService X 利用できないサービス 【参考】 WebLogicドキュメント・ホーム ▶ Configuring and Managing JDBC ▶ Configuring JDBC Multi Data Sources WebLogicドキュメント・ホーム ▶ JDBCのコンフィグレーションと管理 ▶ JDBCマルチデータソースのコンフィグレーション Copyright Oracle Corporation Japan, 2010. All rights reserved. 22
    • マルチデータソース : 2つのアルゴリズムアルゴリズム 基本動作 DB構成ロード • ラウンドロビンで接続を分散 • Active-Activeバランシング • 接続に失敗した場合、別の • RAC構成 データソースを利用するフェイル • 上位に設定されている • Active-Standbyオーバー データソースの接続を利用 • HA構成 • 接続の空きがない、または データソースが利用不能の 場合、リスト内の別のデータ ソースを利用する 【Tips】 コールドスタンバイのDBに対するデータソースは、接続プールの 初期容量(InitialCapacity)を 0 にしておくとよい 【参考】 「WebLogic Server 構築・運用ガイド」 第4章 「4.1 JDBCマルチデータソース」 Copyright Oracle Corporation Japan, 2010. All rights reserved. 23
    • 【Advanced】 DAOサービスとしてのCoherence • フロント側のアクセス負荷を吸収 • バックエンドの稼働状況と フロントのサービス可用性を分離 • アプリケーションからは ひとつのデータサービスとして利用 • もちろんクラスタウェア不要 WebLogic Server クライアント (サーブレット) DAOサービス (Coherence クライアント クライアント) (サーブレット)コード例public Set<Product> getProductsByCondition(String caterogyId, Integer lowestPrice) { NamedCache productStore = CacheFactory.getCache(Product.CACHE_NAME); Set resultSet = productStore.entrySet( QueryHelper.createFilter( // 条件構文の構築 // Coherence 3.6 以降は、SQL Where句のような記述が可能 “categoryId = ” + categoryId + “ and price >= ” + lowestPrice; ) ); return resultSet;} Copyright Oracle Corporation Japan, 2010. All rights reserved. 24
    • アプリケーションの配置• 本番環境には、さまざまなライブラリ/バージョンが混在 → 混乱、ミス…• データソース設定の配布が煩雑 ご紹介したい機能 ✔ フィルタリング・クラスローダー ✔ JDBCアプリケーション モジュール Copyright Oracle Corporation Japan, 2010. All rights reserved. 25
    • アプリケーションのポータビリティを高めるための機能 システム・クラスローダー システム・データソース • 起動時クラスパス • $DOMAIN_HOME/ • $DOMAIN_HOME/lib config/jdbc/xxx.xml WebLogic Server weblogic-application.xml フィルタリング・クラスローダー  JDBCアプリケーションモジュール参照 アプリ側の設定を アプリケーション(EAR) 優先させる • APP-INF/lib • JDBCアプリケーション • APP-INF/classes モジュール • META-INF/Manifest.mf/Class-Path モジュール別ライブラリ、クラス ... Copyright Oracle Corporation Japan, 2010. All rights reserved. 26
    • フィルタリング・クラスローダー機能クラスロード設定のポータビリティを提供• アプリケーションで独立したクラスロードの優先度を設定 –同じAppサーバー上の他アプリケーションのライブラリによる 影響を排除可能(同時に、他にも影響を与えない) –アプリケーションごとに異なるバージョンのライブラリの利用が可能• 設定: weblogic-application.xml に記述 <weblogic-application> ... <prefer-application-packages> <package-name>org.apache.xerces.*</package-name> <package-name>org.apache.commons.*</package-name> </prefer-application-packages> ... </weblogic-application>【参考】WebLogicドキュメント・ホーム ▶ Developing Applications ▶ Understanding WebLogic Server Application ClassloadingWebLogicドキュメント・ホーム ▶ アプリケーションの開発 ▶ WebLogic Server アプリケーションのクラスローディングについて Copyright Oracle Corporation Japan, 2010. All rights reserved. 27
    • JDBCアプリケーション・モジュールデータソース定義のポータビリティを提供• アプリケーション内にデータソース定義を包含• 設定 –ファイルのネーミング・ルール : <xxxx>-jdbc.xml –weblogic-application.xml 内で参照 <weblogic-application> ... <module> <name>data-source-1</name> <type>JDBC</type> <path>[XMLファイルの相対パス]</path> </module> ... </weblogic-application>【参考】WebLogicドキュメント・ホーム ▶ Configuring and Managing JDBC ▶ Configuring JDBC Application Modules for DeploymentWebLogicドキュメント・ホーム ▶ JDBCのコンフィグレーションと管理 ▶ JDBCアプリケーションモジュールのデプロイメントのコンフィグレーション Copyright Oracle Corporation Japan, 2010. All rights reserved. 28
    • テスト段階• 継続実行テストにおいて挙動影響を確認したい – メモリ、CPU、GC影響度• 監視のための特別なコードの組み込みはしたくない ご紹介したい機能 ✔ JRockit Flight Recorder ✔ Memleak Copyright Oracle Corporation Japan, 2010. All rights reserved. 29
    • JRockit Flight Recorder を利用したテストサイクル【開発】 【テスト】 既存コードに手を加えることなく アプリケーションの挙動を記録、 Java アプリ 詳細分析可能 時間の経過 WebLogic Server Oracle 自動記録 挙動を常時記録 JRockit Eclipseと一体化した環境で 迅速に修正 【参考】 「WebLogic Server 構築・運用ガイド」 第5章 「5.3 Java VMのチューニング」 第6章 「6.6.3 JRockit Flight Recorderとの相互接続」 Copyright Oracle Corporation Japan, 2010. All rights reserved. 30
    • 継続テストでの挙動確認早期の問題検知に向けて メモリリークして いるかも… Memleak 機能を 使ったインスタンス間の 参照ツリー分析 Copyright Oracle Corporation Japan, 2010. All rights reserved. 31
    • 時系列での挙動分析処理の関連性・因果関係を可視化 各処理を色分け して明確化 Servlet JavaVM JDBC スレッドごと、 処理タイプごと の処理ステップ Copyright Oracle Corporation Japan, 2010. All rights reserved. 32
    • 開発・テスト段階向けEclipseプラグインとしての JRockit Mission Control• Eclipseと一体化 = 分析中のオブジェクトの コード部分にジャンプ可能設定方法• プラグイン・サイトとして以下を登録し、アップデート –http://www.oracle.com/technology/software/products/jrockit/missionco ntrol/updates/base/4.0.1/eclipse/ 一時的に以下のファイルを公開中。 これをダウンロードしてインストールしてもよい。 –http://download.oracle.com/otn/bea/jrockit/jrmc-updatesite-4.0.1.zip Copyright Oracle Corporation Japan, 2010. All rights reserved. 33
    • もちろん、本番稼動環境で万が一のトラブル対策にJRockit Flight Recorder• これまでのJava • JRockit Flight Recorder Java EE/ISV Java EE/ISV アプリ アプリ ダンプを解析… 直近(例: 1時間) の実行時情報を 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 Oracle App Server WebLogic java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) - locked <0x26580360> (a java.lang.ref.ReferenceQueue$Lock) 自動記録 at Server 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] 5%以下の 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 JVM java.lang.ref.Reference$ReferenceHandler.run(Reference.java:11 6) - locked <0x26580a50> (a java.lang.ref.Reference$Lock) "main" prio=5 tid=0x005013a0 nid=0x1804c00 waiting on JRockit VM 低負荷 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. 障害発生→改善のサイクルと手間を大きく短縮化 Copyright Oracle Corporation Japan, 2010. All rights reserved. 34
    • もちろん、本番稼動環境で万が一のトラブル対策にJRockit Flight Recorder の効果例• 過去に実際にあった問題(以下)の対応プロセスを元に比較 –対象: WebLogic Server上のWebアプリ (※)JRockit Flight Recorderの場合の –事象: アクセスが増える毎にレスポンスタイムが悪化 日数=当該事象を元に推測これまでのJava 問題解決までの期間: 30日(原因判明まで: 19日) 19日 11日 3 3 10 3 10 11 2 6 7 6 7 6 7 8 9 10 3 4 5JRockit Flight Recorder 問題解決までの期間: 12日(原因判明まで: 1日) 1日 11日 迅速かつ確実な問題解決 1 10 1 1. 問題発生、対処のため再起動 8. 原因判明1 2 8 9 10 2. 解析開始 9. 対処、テスト 3. 再現環境の準備開始 10. 本番に適用 4. 再現環境にて再現を試行 期間短縮 再現作業不要 5. 再現せず JRockit Flight Recorderを利用 の理由 6. 本番環境で再発 することで省略 再発待ち不要 7. 情報収集した後再起動 できる作業 Copyright Oracle Corporation Japan, 2010. All rights reserved. 35
    • 例■ CPU状況/スレッド状況 ■ GC状況の可視化
    • 例■ JDBCコール部分の分析 ■ 実際にコールされたSQLの識別
    • 本番運用段階 Copyright Oracle Corporation Japan, 2010. All rights reserved. 38
    • アプリケーションの入れ替え• 本番環境での確実な動作確認をしたい• 既存アプリケーションの利用を止めたくない – 運用でのアプリケーションの一時的な停止措置は極力避けたい• 現行利用中のユーザーの処理を邪魔したくない ご紹介したい機能 ✔ プロダクション再デプロイメント ✔ 管理モードデプロイ Copyright Oracle Corporation Japan, 2010. All rights reserved. 39
    • プロダクション再デプロイメント サーバー無停止でのアプリケーション変更自動化 – 既存ユーザーの処理を邪魔しない、アプリケーションの並行稼働による更新 • セッションが繋がっていたリクエストは古いバージョンで処理を継続、 新規セッションのリクエストは新バージョンで処理 – アプリケーションのバージョン管理のための設定 Manifest-Version: 1.0 ... • META-INF/manifest.mf に追記 Weblogic-Application-Version: v1 • または、weblogic.Deployer コマンドでバージョンを指定してデプロイ他社Appサーバー WebLogic Server複数台のAppサーバー + 振り分け処理サーバー 単一サーバーで新旧のアプリを自動制御 管理ユーザー 管理ユーザー アプリケーションA アプリケーションA バージョン 1.1 バージョン 1.1 アプリケーションA アプリケーションA バージョン 1.0 バージョン 1.0 一般ユーザー 一般ユーザー 【参考】 「WebLogic Server 構築・運用ガイド」 第6章 「6.7.4 アプリケーションの更新」 Copyright Oracle Corporation Japan, 2010. All rights reserved. 40
    • 管理モードデプロイ 本番環境での動作確認 – 一般ユーザーに公開する前に管理ポート経由での動作検証が可能 管理者 ① アプリケーションの新バージョンを配布 一般 ユーザー 開発者 (下記例ではバージョン “v1.2” としています) java weblogic.Deployer -adminurl http://<YourHost>:7001 -user weblogic -password <password>http://server:7001/app -distribute -name <デプロイ名> -source <デプロイ対象パス> -appversion v1.2 https://server:9002/app ② 管理モードで起動 アプリA アプリA java weblogic.Deployer バージョン 1.0 バージョン 1.2 -adminurl http://<YourHost>:7001 -user weblogic -password <password> -start -adminmode -name <デプロイ名> -appversion v1.2http://server:7001/app ③ 旧・新のアプリを並行稼働(プロダクション再デプロイ)で公開 java weblogic.Deployer アプリA アプリA -adminurl http://<YourHost>:7001 -user weblogic -password <password> バージョン 1.0 バージョン 1.2 -start -name <デプロイ名> -appversion v1.2 -retiretimeout 600 【参考】 WebLogicドキュメント・ホーム ▶ Deploying Applications ▶ Redeploying Applications in a Production Environment ▶ Distributing a New Version of a Production Application WebLogicドキュメント・ホーム ▶ アプリケーションのデプロイメント ▶ プロダクション環境でのアプリケーションの再デプロイメント ▶ プロダクション アプリケーションの新しいバージョンの分散 Copyright Oracle Corporation Japan, 2010. All rights reserved. 41
    • 運用段階での調整• 流量やアプリケーション優先度を制御したい、例えば – 大きなファイル転送などの時間のかかる処理によって 軽い応答処理も待ち状態になってしまう – 利用者によってサービスレベルを変えたい→ 運用でやりくり? = 作業コストやマシン台数の増大 ご紹介したい機能 ✔ ワークマネージャ Copyright Oracle Corporation Japan, 2010. All rights reserved. 42
    • ワークマネージャ• リクエストに対する処理スレッドの割り当て制御機能適用レベル スレッドの絶対数制御(制約) スレッドの相対数制御(要求クラス) サーバー全体  最小スレッド数  割当て比率(フェアシェア) アプリケーション  最大スレッド数  目標応答時間 サーブレット/JSP  リクエスト総容量  ユーザー/ロール(コンテキスト) WebLogic Server アプリケーションB アプリケーションA アプリケーションC スレッドプール 【参考】 「WebLogic Server 構築・運用ガイド」 第5章 「5.4 スレッド関連のチューニング」 Copyright Oracle Corporation Japan, 2010. All rights reserved. 43
    • ワークマネージャ 活用例1 業務的な理由 ... • 特定の利用者層に対する <response-time-request-class> 目標応答時間または <name>special_service</name> サービスレベルを調整したい <goal-ms>1000</goal-ms> 処理比率を設定 </response-time-request-class> (フェアシェア要求クラス、 – 優良顧客向けサービス <response-time-request-class> 応答時間要求クラス) <name>normal_service</name> – マネジメント層向けの <goal-ms>5000</goal-ms> ※ この例では応答時間 アプリケーション </response-time-request-class> 要求クラスを利用 <context-request-class> <name>SLA_control</name> <context-case> normal_service <group-name>diamond_user</group-name> ユーザー/通常ユーザー(everyone) <request-class-name>special_service</request-class-name> ロールごとの </context-case> 割当て <context-case> <group-name>everyone</group-name> (コンテキスト アプリケーション <request-class-name>normal_service</request-class-name> 要求クラス) </context-case> </context-request-class> WM_Service <work-manager> <name>WM_Service</name>優良顧客 <context-request-class>SLA_control</context-request-class>(diamond_user) </work-manager> special_service ... SLA_control Copyright Oracle Corporation Japan, 2010. All rights reserved. 44
    • ワークマネージャ 活用例2技術的な理由 ...• 処理時間に違いがある <max-threads-constraint> <name>TotalThreads</name> – ファイル転送処理と <count>150</count> シンプルWebページなど </max-threads-constraint> 最大スレッド数を定義 <max-threads-constraint> (最大スレッド数制約) <name>5MaxThreads</name>• リソース管理上の問題 <count>5</count> – デッドロック防止 </max-threads-constraint> <capacity> 同時処理を受け付ける – 全体リソースの制限 <name>7MaxCapacity</name> <count>7</count> 総リクエスト数を定義 あわせて150スレッドで同時処理 </capacity> (容量制約) <work-manager> <name>WM_TRANSFER</name> <max-threads-constraint>5MaxThreads</max-threads-constraint> 通常処理サーブレット <capacity>7MaxCapacity</capacity> </work-manager> 転送処理サーブレット <work-manager> <name>WM_TOTAL</name> アプリケーション <max-threads-constraint>TotalThreads</max-threads-constraint> </work-manager> WM_TOTAL ... 5スレッドで同時処理。 総容量が 7 に設定されているため、2つまで処理待ちキューに保持。 (それ以上のリクエストは error 503 としてはじく) Copyright Oracle Corporation Japan, 2010. All rights reserved. 45
    • ワークマネージャ : 適用ステップ 1.定義 2.適用 いくつかのスコープで定義可能 EJBまたはWebアプリに適用を指定管理コンソール 構成ファイルで から設定 設定環境 > config.xml サーバーワークマネージャ エンタープライズデプロイメント > weblogic- アプリケーション(対象アプリ) > application.xml 構成ファイルから構成 > 負荷 指定 EJB weblogic- EJB-A weblogic-ejb-jar.xml ejb-jar.xml EJB-B … weblogic.xml weblogic.xml (Webアプリ単位) Webアプリケーション web.xml サーブレットA (サーブレット単位) サーブレットB … Copyright Oracle Corporation Japan, 2010. All rights reserved. 46
    • 各アプリケーションからの指定サーバー エンタープライズ アプリケーション EJB EJB EJB-A EJB-B … • weblogic-ejb-jar.xml <dispatch-policy>WM_NAME</dispatch-policy> Webアプリケーション サーブレットA Web アプリケーション サーブレットB … • Web アプリケーション単位 - weblogic.xml <wl-dispatch-policy>WM_NAME</wl-dispatch-policy> • サーブレット単位 - web.xml <init-param> <param-name>wl-dispatch-policy</param-name> <param-value>WM_NAME</param-value> </init-param> Copyright Oracle Corporation Japan, 2010. All rights reserved. 47
    • 運用段階での調整• HTTPセッションが膨れ上がってメモリを圧迫する• 同時アクセスの増加、集中でスローダウンやトラブル• コード変更によるリスクは避けたい 検討すべき機能 ✔ Coherence*Web Copyright Oracle Corporation Japan, 2010. All rights reserved. 48
    • Coherence*Web横断型共有メモリ = キャパシティ改善 従来型 Coherence*Web• 4 物理サーバー • 4 物理サーバー• 4 WebLogicインスタンス • 4 WebLogicインスタンス• キャパシティ = 540 ユーザー • 8 Coherenceサーバー • キャパシティ = 2,160 ユーザー + • メモリ・データの信頼 = アプリケーション信頼性 • HW入れ替えや構成変更の自由度 • Webコンテナ異種混合でもOK Copyright Oracle Corporation Japan, 2010. All rights reserved. 49
    • Coherence*Web 検証結果にみる適用効果 ■ スループット スループット比較(テストケース2) セッションサイズ 10K 総メモリ量 3G 制限での 検証テスト結果スループット WebLogic 1G 1G 1G 従来型 クラスタ構成 WebLogic 1G 1G Coherence 512M 512M Coherence*Web構成 0 500 1000 1500 2000 2500 3000 同時仮想端末数 WLS+COH 同一筐体 WLS+COH 別ノード配置 WLS Cluster theoretical max. 同時 繰り返し 処理時間 コメント ユーザー数 実行数 (秒) 通常のセッション管理 20 10 0.741海外顧客の Coherence*Web (front) 20 10 0.702事前テスト結果 Coherence*Web (near) 20 10 0.741 通常のセッション管理 100 20 測定不能(OutOfMemory) Coherence*Web (front) 100 20 2.186 Coherence*Web (near) 100 20 1.961 Copyright Oracle Corporation Japan, 2010. All rights reserved. 50
    • Coherence*Web 柔軟な構成 1 セッション共有の範囲 少 低 サーバー サーバー サーバースコープ エンタープライズ・アプリA(EAR) アプリB(EAR) Webアプリ1(WAR) Webアプリ2 EARスコープ サーバー サーバー エンタープライズ・アプリA(EAR) アプリB(EAR) Webアプリ1(WAR) Webアプリ2 WARスコープ サーバー サーバー 多 高 エンタープライズ・アプリA(EAR) アプリB(EAR) Webアプリ1(WAR) Webアプリ2 リソース制御Coherence きめ細かい ノード数 Copyright Oracle Corporation Japan, 2010. All rights reserved. 51
    • Coherence*Web 柔軟な構成 2 セッション・モデル設定 スプリット・セッション モノシリック - セッション・オブジェクトを ひと固まりのデータとして保持 属性サイズ しきい値 トラディショナル - セッション・オブジェクトを 属性値ごとに分けて保持 スプリット・セッション(推奨) - 属性サイズの大小で Appサーバー内 保持形態を分ける Coherenceサーバー内 ハイブリッド・モデル Copyright Oracle Corporation Japan, 2010. All rights reserved. 52
    • Coherence*Web 設定 基本手順 ① Coherence ソフトウェアの準備 ② Coherence サーバーの起動 サーバーに一度だけ実施 ③ Appサーバーのライブラリ設定 ④ Webアプリケーションの設定 アプリケーションごとに実施 アプリケーション側のコード変更は不要① ④ ③ ② Copyright Oracle Corporation Japan, 2010. All rights reserved. 53
    • Coherence*Web 設定with Coherence 3.6• 以下の条件によって設定手順が若干変わります – Appサーバーの種類およびバージョン • WebLogic Server 10.3.3以降 • WebLogic Server 10.3.1/10.3.2 • WebLogic Server 9.2 MP1/10.3 – WebLogic側にパッチ適用が必要。その後の手順は10.3.1/10.3.2 と同じ – セッション 共有範囲 • サーバースコープ • EARスコープ • WARスコープ【参考】WebLogicドキュメント・ホーム ▶ Using ActiveCache 【10.3.3 の新規ドキュメント】Coherenceドキュメント・ホーム ▶ 3.6 Release Notes ▶ Documentation Errata ▶ Updated Instructions for Configuring Cluster Nodes for Coherence*WebCoherenceドキュメント・ホーム ▶ User„s Guide for Oracle Coherence*Web ▶ Using Coherence*Web with WebLogic ServerCoherenceドキュメント・ホーム ▶ User„s Guide for Oracle Coherence*Web ▶ Installing Coherence*Web on Other Applicagtion Server Copyright Oracle Corporation Japan, 2010. All rights reserved. 54
    • 参考 : Coherence 3.6Coherence*Web 設定例共通手順部分① Coherence 3.6 ソフトウェアの準備 ※ 必要なライセンスを取得ください – ソフトウェアをダウンロードする② Coherence サーバーの起動 java -server -Xms512m -Xmx512m -cp $COH_HOME/lib/coherence.jar:$COH_HOME/lib/coherence-web-spi.war -Dtangosol.coherence.management.remote=true -Dtangosol.coherence.cacheconfig=WEB-INF/classes/session-cache-config.xml -Dtangosol.coherence.session.localstorage=true com.tangosol.net.DefaultCacheServer – 起動は、同一マシン上でも、異なるマシン上でもかまいません。 – キャッシュ構成ファイル(上記コードにおける session-cache-config.xml)は 状況によってカスタマイズが必要なケースがあります。 Copyright Oracle Corporation Japan, 2010. All rights reserved. 55
    • 参考 : Coherence 3.6 Coherence*Web 設定例 条件別で異なる手順部分 : WebLogic Server 10.3.3 の場合 サーバースコープ EARスコープ WARスコープ③ WebLogic Server のライブラリ設定 $COH_HOME/lib/ 共有ライブラリとしてデプロイ 共有ライブラリとしてデプロイ coherence-web-spi.war $COH_HOME/lib/ Warファイル内のWEB-INF/lib coherence.jar 共有ライブラリとしてデプロイ に配置 WebLogic 起動時のシステム $WL_HOME/common/ クラスパスに追加 deployable-libraries/ 共有ライブラリとしてデプロイ active-cache.jar④ Webアプリケーション側の設定 構成ファイルの変更 対象のWebアプリに対する 対象のEarに対する 対象のWebアプリに対する weblogic.xml に、以下の weblogic-application.xml に weblogic.xml に、以下の 共有ライブラリへの参照を追記 以下の共有ライブラリへの参照を追記 共有ライブラリへの参照を追記 - coherence-web-spi - coherence-web-spi - coherence-web-spi - coherence <weblogic-web-app> ... - active-cache Warファイル内のMETA-INF/ <library-ref> manifest.mf でactive- <library-name>coherence-web-spi</library-name> Extension-List: active-cache cache.jar への参照を記述 </library-ref> active-cache-Extension-Name: active-cache ... active-cache-Specification-Version: 1.0 </weblogic-web-app> active-cache-Implementation-Version: 1.0 アプリケーション側のコード変更は不要 Copyright Oracle Corporation Japan, 2010. All rights reserved. 56
    • まとめ• WebLogic Server の機能およびその周辺機能は 開発から運用にいたる様々な作業軽減に貢献します。• 本番稼働後の状況変化にも対応しやすいように拡張性を 持たせて設計されています。 本内容についての注意事項 • ほとんどの機能は WebLogic 9.2 以降で利用可能です。 • JRockit Flight Recorder は JRockit R28 以降 で利用可能です。 また、WebLogic との高度な連携のために WebLogic 10.3.3 との 利用をお勧めします。 • JRockit Flight Recorder、Memleak を利用するには WebLogic EE または Diagnostics Pack for Oracle Middleware がライセンスとして必要になります。 • Coherence 連携機能を利用するには、WebLogic Suite または Coherence EE ライセンスが必要になります。 Copyright Oracle Corporation Japan, 2010. All rights reserved. 57
    • おまけ• 通常起動 • -DserverType=wlx オプション Copyright Oracle Corporation Japan, 2010. All rights reserved. 58
    • あなたにいちばん近いオラクル Oracle Direct まずはお問合せください Oracle Direct 検索 システムの検討・構築から運用まで、ITプロジェクト全般の相談窓口としてご支援いたします。 システム構成やライセンス/購入方法などお気軽にお問い合わせ下さい。 Web問い合わせフォーム フリーダイヤル 専用お問い合わせフォームにてご相談内容を承ります。http://www.oracle.co.jp/inq_pl/INQUIRY/quest?rid=28 0120-155-096 ※フォームの入力には、Oracle Direct Seminar申込時と同じ ※月曜~金曜 9:00~12:00、13:00~18:00 ログインが必要となります。 ※こちらから詳細確認のお電話を差し上げる場合がありますので、ご登録さ れている連絡先が最新のものになっているか、ご確認下さい。 (祝日および年末年始除く) Copyright© 2011, Oracle. All rights reserved. 59
    • 61