weblogic serverの開発モードと本番モードの使い分け

23
Copyright (c)2013 ITOCHU Techno-Solutions Corporation WebLogic Server勉強会@東京 LT 開発モードと本番モードの使い分け ソフトウェアサービス本部 ミドルウェアサポート部 山田 貴裕 2013/5/23

Upload: oracle-fusion-middleware

Post on 24-May-2015

5.968 views

Category:

Documents


8 download

DESCRIPTION

WebLogic Serverの開発モードと本番モードの基本、違い、切り替え方法などを解説。 CTC ソフトウェアサービス本部 ミドルウェアサポート部 山田 貴裕

TRANSCRIPT

Page 1: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

WebLogic Server勉強会@東京 LT

開発モードと本番モードの使い分け

ソフトウェアサービス本部 ミドルウェアサポート部

山田 貴裕

2013/5/23

Page 2: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

はじめに

• 発表する内容は個人の見解であり、所属する組織の公式な見解ではありません。

• WebLogic Server 12c (12.1.1) を基に確認・検証しているため、他のバージョンでは多少異なる場合があります。

• WebLogic Server (WLS) の開発者ライセンスは無料になりました。

2

Page 3: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

アジェンダ

• 開発モードと本番モードの基本

• 開発モードと本番モードの違い

• 開発モードだけで利用できる機能

• 開発モードと本番モードの切り替え

3

Page 4: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

アジェンダ

• 開発モードと本番モードの基本

• 開発モードと本番モードの違い

• 開発モードだけで利用できる機能

• 開発モードと本番モードの切り替え

4

Page 5: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードと本番モードの選択

• ドメイン構成ウィザードで選択

5

本番モードのデフォルト: JRockit JDK

開発モードのデフォルト: HotSpot(Sun) JDK

Page 6: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

よくありがちな質問

• Q. 開発モードから本番モードにすることでパフォーマンスは大幅に向上しますか?

6

• A. いいえ。

モードによる直接的な違いは、それほどありません。

ただし、構成のデフォルト値の違いや、起動時のJVMオプション

の違いに起因して、パフォーマンスに差異が出てきます。

Page 7: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

アジェンダ

• 開発モードと本番モードの基本

• 開発モードと本番モードの違い

• 開発モードだけで利用できる機能

• 開発モードと本番モードの切り替え

7

Page 8: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードと本番モードの違い - 構成のデフォルト値

8

構成のデフォルト値 項目 開発モード 本番モード

内部アプリケーションのオンデマンド・デプロイメントを有効化

true false

ロギング (ドメイン・ログ、サーバー・ログ、HTTPアクセス・ログ、データソース・プロファイル・ログ 共通)

保存するファイル数 7 100

ローテーション・ファイル・サイズ 500 (KB) 5,000 (KB)

起動時にログ・ファイルを

ローテーション

true false

ロギング (サーバー・ログのみ)

ドメイン・ログ・ブロードキャスタ :

バッファ・サイズ

1 10

メモリー・バッファ・サイズ 10 500

サーバーのライフサイクルの

タイムアウト

30 (秒) 120 (秒)

weblogic.xml (page-check-seconds,

servlet-reload-check-secs,

resource-reload-check-secs)

1 (毎秒再ロードが行われる) -1 (再ロードは行われない)

Page 9: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードと本番モードの違い - 起動オプションのデフォルト値

9

起動オプションのデフォルト値 項目 開発モード 本番モード

HotSpot JVM用オプション -client

-Xms256m

-Xmx512m

-XX:CompileThreshold=8000

-XX:PermSize=128m

-XX:MaxPermSize=256m

-Xverify:none

-server

-Xms256m

-Xmx512m

-XX:MaxPermSize=256m

WebLogic用オプション

(過去互換性)

-Dwlw.iterativeDev=

-Dwlw.testConsole=

-Dwlw.logErrorsToConsole=

-Dweblogic.ProductionModeEnabled=true

-Dwlw.iterativeDev=false

-Dwlw.testConsole=false

-Dwlw.logErrorsToConsole=false

<WLSドメイン>/bin/setDomainEnv(.sh|.cmd) のPRODUCTION_MODE 環境変数で制御

※変更しても構成のデフォルト値の変更は反映されない (別途切り替え方法を説明) .

.

JAVA Memory arguments: -Xms256m -Xmx512m -XX:MaxPermSize=256m

.

WLS Start Mode=Production

.

(setDomainEnv.sh)

PRODUCTION_MODE="true"

export PRODUCTION_MODE

Page 10: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードと本番モードの違い - セキュリティ関連

セキュリティ関連 項目 開発モード 本番モード

boot.properties ドメイン構成時に管理サーバー用に自動的に作成される

ドメイン構成時に自動的に作成されない

SSLデモ用証明書 利用してもよい 非推奨であり、利用すると起動時に警告が表示される

ノード・マネージャ用のユーザー名、パスワード

管理者ユーザー名とパスワードで初期化される

ランダムに初期化される

config.xml内のパスワードの暗号化

暗号化せずに平文でも設定できる 暗号化する必要がある

管理コンソールでの変更 デフォルトでロックを自動取得して変更をアクティブ化する

ロックを明示的に取得して、アクティブ化する必要がある

サーブレットで未キャッチの例外

エラーページにスタックトレースが出力される

エラーページにはスタックトレースは出力されない

参考資料:

『boot.propertiesから見るWebLogic Serverの世界』 http://www.slideshare.net/OracleMiddleJP/bootpropertiesweblogic-server

『WebLogic Serverの運用管理:応用編』 - P22. 参考: 本番モードでの nmConnect() の実行 http://www.slideshare.net/OracleMiddleJP/20121122-wlstudy-wlsadvancehandsout-15381214

10

Page 11: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

アジェンダ

• 開発モードと本番モードの基本

• 開発モードと本番モードの違い

• 開発モードだけで利用できる機能

• 開発モードと本番モードの切り替え

11

Page 12: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードだけで利用できる機能 - 自動デプロイ

• 自動デプロイ

– <WLSドメイン>/autodeployディレクトリにモジュールを配置・削除することで自動的に管理サーバーにデプロイ・アンデプロイ

12

展開形式でも、アーカイブ形式でもどちらでも可

特定の命名規則でデプロイされる

Page 13: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードだけで利用できる機能 - FastSwapデプロイメント

• FastSwapデプロイメント

– 再デプロイすることなく、クラスの変更を動的に反映 (制限あり)

– 展開形式でデプロイしたクラス (WEB-INF/classesなど) が対象

– weblogic.xml(WAR), weblogic-application.xml(EAR)で有効化

– Oracle Enterprise Pack for Eclipse (OEPE)ではGUIでも設定可能

13

<fast-swap>

<enabled>true</enabled>

</fast-swap>

Page 14: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードだけで利用できる機能 - クラス・キャッシュ

• クラス・キャッシュ

– WLS10.3.3 (10.3.4で正式) から利用でき、起動を高速化

– CLASS_CACHE環境変数をtrueに設定して実行

• 通常のメインクラスであるweblogic.Serverに代わって、com.oracle.classloader.launch.Launcherが起動

14

(startWebLogic.sh抜粋)

classCaching()

{

echo "Class caching enabled..."

JAVA_OPTIONS="${JAVA_OPTIONS} -Dlaunch.main.class=${SERVER_CLASS}

-Dlaunch.class.path="${CLASSPATH}" -Dlaunch.complete=weblogic.store.internal.LockManagerImpl

-cp ${WL_HOME}/server/lib/pcl2.jar"

export JAVA_OPTIONS

SERVER_CLASS="com.oracle.classloader.launch.Launcher"

}

:

if [ "${CLASS_CACHE}" = "true" ] ; then

classCaching

fi

Page 15: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードだけで利用できる機能 - Classloader Analysis Tool (CAT)

• Classloader Analysis Tool (CAT)

– http://localhost:7001/wls-cat/

15

:

• クラスがどこからロードされているかやコンフリクトしているかを検出し、修正方法をアドバイス

• 本番モードでも明示的にデプロイすることで使用可能 <WL_HOME>/server/lib/wls-cat.war

詳細は、Javaエバンジェリスト 寺田さんのブログ『WebLogic 10.3.4 が正式リリース』などを参照

http://yoshio3.com/2011/01/16/weblogic-10-3-4-が正式リリース/

クラスローダー

の階層表示

Page 16: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードだけで利用できる機能 - Webサービス・テスト・クライアント (1)

• Webサービス・テスト・クライアント

– 管理コンソールから[デプロイメント]→<モジュール>→<Webサービス名>

– [テスト]→<Webサービス名>→[Test Client]

16

Page 17: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードだけで利用できる機能 - Webサービス・テスト・クライアント (2)

• Webサービス・テスト・クライアント (続き)

– WebLogic Test Clientが開くので、メソッドに引数を指定して実行

17

JAX-WSを利用する場合は便利

(JAX-RSならお好みのHTTPクライアントで)

Page 18: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードだけで利用できる機能 - 特定セッションのデバッグ

• 特定セッションのデバッグ

– デバッグ開始

• http://localhost:7001/foo/bar?wl_debug_session

• session.setAttribute("wl_debug_session", Boolean.TRUE);

– デバッグ停止

• session.removeAttribute("wl_debug_session");

– サーバー・ログの[ログの最低の重大度]をデバッグ以下にする

• <サーバー>→[ロギング]→[全般]→[詳細]

18

:

Page 19: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

アジェンダ

• 開発モードと本番モードの基本

• 開発モードと本番モードの違い

• 開発モードだけで利用できる機能

• 開発モードと本番モードの切り替え

19

Page 20: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードと本番モードの切り替え (1)

• 開発モード→本番モード

– 管理コンソールから<ドメイン>→[構成]→[全般]→[本番モード]

– <WLSドメイン>/bin/setDomainEnv(.sh|.cmd)も併せて修正

20

:

:

有効化して再起動

必要に応じてチェックを外す

(setDomainEnv.sh)

PRODUCTION_MODE="true"

export PRODUCTION_MODE

(setDomainEnv.cmd)

set PRODUCTION_MODE=true

Page 21: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

開発モードと本番モードの切り替え (2)

• 本番モード→開発モード

– 管理コンソールでは変更不可

– WebLogic Scripting Tool (WLST) での変更

– <WLSドメイン>/bin/setDomainEnv(.sh|.cmd)も併せて修正

21

(setDomainEnv.sh)

PRODUCTION_MODE=""

export PRODUCTION_MODE

(setDomainEnv.cmd)

set PRODUCTION_MODE=

固定値になっている

connect('weblogic', 'welcome1', 't3://localhost:7001')

edit()

startEdit()

cd('/')

cmo.setProductionModeEnabled(false)

save()

showChanges()

activate()

exit()

変更後、再起動

falseでもよい(基本的にtrueか否かで認識)

Page 22: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation

まとめ

• 個人の開発環境では開発モード

– WLSの開発者ライセンスは無料

– 開発モードで使える機能を理解し、効率的な開発を

– 基本的に単一サーバー・ドメインであることが前提

• それ以外の環境では本番モード

– モードによる動作差異をなくし、安全なテスト~運用を

22

Page 23: WebLogic Serverの開発モードと本番モードの使い分け

Copyright (c)2013 ITOCHU Techno-Solutions Corporation