WebLogicのExpressモード
はじめに
この記事はJPOUG Advent Calendarの22日目です。
昨日は[twitter:@kingyokkun]さんによる"DWHっぽい事でも書いてみる"でした。
明日はロジ子さん([twitter:@OraBlogs_jp])の登場です。
私からはミドルウェア関連のネタを取り上げたいと思います。
本文
かつてBEA社の時代は、WebLogic Server(以下WLS)のエディションとして、WebLogic Express(通称:WLX)がありました。
これは実際に機能が限定されており、ServletコンテナなどJava EEの一部機能を提供するものでした。
Oracle社製品になってからは、Expressエディションはなくなり、異なるエディション体系(Standard/Enterprise/Suite)に変わりました。
これらは基本的に同一インストールバイナリ*1であり、ライセンスに基いて利用する機能を選択するようになっています。*2
さて、このようにバイナリとしては単一になったものの、実はオプションを指定することで、かつてのWebLogic Expressと同様にランタイムの機能制限を加えて起動することができます。
やり方は非常に簡単。起動オプションとして以下を加えるだけです。
-DserverType=wlx
起動
では簡単にですが試してみましょう。やり方は色々ありますが、設定変更を簡単に試すために環境変数JAVA_OPTIONSを設定して起動します。
DOMAIN_HOME環境変数はお使いのWLSドメインディレクトリに合わせて設定ください。
- Unix環境の場合
cd $DOMAIN_HOME JAVA_OPTIONS="-DserverType=wlx" export JAVA_OPTIONS ./startWebLogic.sh
- Windows環境の場合
cd %DOMAIN_HOME%
set JAVA_OPTIONS=-DserverType=wlx
startWebLogic.cmd
管理コンソールから見た変更点
さて、何が変わったのでしょう。
管理コンソール(デフォルト http://
これだけだと分かりませんね。では通常の画面コピーと比較してみましょう。
はい、メッセージング関連のサービスが消えているのが分かりますね。左側のドメイン構造から辿っても同様です。
マニュアル
これは隠し機能ではなく、マニュアルにも記載されています。
通常、WebLogic Serverインスタンスの起動時には、EJB、JMS、コネクタ、クラスタリング、デプロイメント、管理などすべてのサービスが起動します。ただし、WebLogic Serverに備わっている起動オプションを使用した場合には、これらのサービスの一部を起動対象から除外して、ランタイム範囲を軽量化できます。この起動モードを使用すると、WebLogic Serverの起動時間が短くなり、ホスト・マシンのリソース範囲が小さくなります。
WebLogic Serverインスタンスで起動対象とするサービス群は、サーバー・タイプ・オプションを取るServer Type起動コマンドで定義します。このリリースには、次の2種類のサーバー・タイプ・オプションがあります。
- wls ―すべてのサービスを起動(デフォルト)
- wlx ―次に示すサービス以外のサービスを起動
WebLogic Serverインスタンスでこれらのサービスを使用する必要がない場合、軽量化ランタイムを実行するとパフォーマンスが大幅に向上する可能性があります。
WebLogic Server起動時のランタイム使用量の制限
serverTypeに指定できる値
マニュアルには"wlx"だけでなく"wls"も指定できるとありますが、実際にWLS12.1.1でやってみても起動時に警告が出力されてしまいます。
<2012/12/22 18時07分50秒 JST> <Warning> <Server> <BEA-002641> <-DserverTypeは認識されない値に設定されています: wls。サーバーはすべてのサービスが有効な状態で起動します。>
ただ、無効なタイプを指定すると、すべてのサービスが有効となるため結果的には同様です。
この辺りを調べたところ、どうやら$WL_HOME/server/lib/service-config.propertiesで定義されている内容に基づいているようです。
# SERVICES connector weblogic.t3.srvr.servicegroups.ConnectorServiceGroup ejb weblogic.t3.srvr.servicegroups.EJBServiceGroup jms weblogic.t3.srvr.servicegroups.JMSServiceGroup # SERVER CONFIGS wlx-config ejb jms connector
これを変更すれば、カスタムのserverTypeも定義できそうですが、当然ながらサポート対象外となりますので、商用環境ではやめましょう。