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

10,010 views

Published on

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

0 Comments
12 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
10,010
On SlideShare
0
From Embeds
0
Number of Embeds
681
Actions
Shares
0
Downloads
55
Comments
0
Likes
12
Embeds 0
No embeds

No notes for slide

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

  1. 1. Copyright (c)2013 ITOCHU Techno-Solutions CorporationWebLogic Server勉強会@東京 LT開発モードと本番モードの使い分けソフトウェアサービス本部 ミドルウェアサポート部山田 貴裕2013/5/23
  2. 2. Copyright (c)2013 ITOCHU Techno-Solutions Corporationはじめに• 発表する内容は個人の見解であり、所属する組織の公式な見解ではありません。• WebLogic Server 12c (12.1.1) を基に確認・検証しているため、他のバージョンでは多少異なる場合があります。• WebLogic Server (WLS) の開発者ライセンスは無料になりました。2
  3. 3. Copyright (c)2013 ITOCHU Techno-Solutions Corporationアジェンダ• 開発モードと本番モードの基本• 開発モードと本番モードの違い• 開発モードだけで利用できる機能• 開発モードと本番モードの切り替え3
  4. 4. Copyright (c)2013 ITOCHU Techno-Solutions Corporationアジェンダ• 開発モードと本番モードの基本• 開発モードと本番モードの違い• 開発モードだけで利用できる機能• 開発モードと本番モードの切り替え4
  5. 5. Copyright (c)2013 ITOCHU Techno-Solutions Corporation開発モードと本番モードの選択• ドメイン構成ウィザードで選択5本番モードのデフォルト: JRockit JDK開発モードのデフォルト: HotSpot(Sun) JDK
  6. 6. Copyright (c)2013 ITOCHU Techno-Solutions Corporationよくありがちな質問• Q. 開発モードから本番モードにすることでパフォーマンスは大幅に向上しますか?6• A. いいえ。モードによる直接的な違いは、それほどありません。ただし、構成のデフォルト値の違いや、起動時のJVMオプションの違いに起因して、パフォーマンスに差異が出てきます。
  7. 7. Copyright (c)2013 ITOCHU Techno-Solutions Corporationアジェンダ• 開発モードと本番モードの基本• 開発モードと本番モードの違い• 開発モードだけで利用できる機能• 開発モードと本番モードの切り替え7
  8. 8. 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 (再ロードは行われない)
  9. 9. 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=256mWebLogic用オプション(過去互換性) -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
  10. 10. 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-1538121410
  11. 11. Copyright (c)2013 ITOCHU Techno-Solutions Corporationアジェンダ• 開発モードと本番モードの基本• 開発モードと本番モードの違い• 開発モードだけで利用できる機能• 開発モードと本番モードの切り替え11
  12. 12. Copyright (c)2013 ITOCHU Techno-Solutions Corporation開発モードだけで利用できる機能 - 自動デプロイ• 自動デプロイ– <WLSドメイン>/autodeployディレクトリにモジュールを配置・削除することで自動的に管理サーバーにデプロイ・アンデプロイ12展開形式でも、アーカイブ形式でもどちらでも可特定の命名規則でデプロイされる
  13. 13. 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>
  14. 14. 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_OPTIONSSERVER_CLASS="com.oracle.classloader.launch.Launcher"}:if [ "${CLASS_CACHE}" = "true" ] ; thenclassCachingfi
  15. 15. 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-が正式リリース/クラスローダーの階層表示
  16. 16. Copyright (c)2013 ITOCHU Techno-Solutions Corporation開発モードだけで利用できる機能 - Webサービス・テスト・クライアント (1)• Webサービス・テスト・クライアント– 管理コンソールから[デプロイメント]→<モジュール>→<Webサービス名>– [テスト]→<Webサービス名>→[Test Client]16
  17. 17. Copyright (c)2013 ITOCHU Techno-Solutions Corporation開発モードだけで利用できる機能 - Webサービス・テスト・クライアント (2)• Webサービス・テスト・クライアント (続き)– WebLogic Test Clientが開くので、メソッドに引数を指定して実行17JAX-WSを利用する場合は便利(JAX-RSならお好みのHTTPクライアントで)
  18. 18. 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:
  19. 19. Copyright (c)2013 ITOCHU Techno-Solutions Corporationアジェンダ• 開発モードと本番モードの基本• 開発モードと本番モードの違い• 開発モードだけで利用できる機能• 開発モードと本番モードの切り替え19
  20. 20. 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
  21. 21. 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か否かで認識)
  22. 22. Copyright (c)2013 ITOCHU Techno-Solutions Corporationまとめ• 個人の開発環境では開発モード– WLSの開発者ライセンスは無料– 開発モードで使える機能を理解し、効率的な開発を– 基本的に単一サーバー・ドメインであることが前提• それ以外の環境では本番モード– モードによる動作差異をなくし、安全なテスト~運用を22
  23. 23. Copyright (c)2013 ITOCHU Techno-Solutions Corporation

×