Curl Global Community
WebLogic が不安定なときはメモリ割り当てを増やす - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Blogs (https://communities.curl.com/forumdisplay.php?fid=17)
+--- Forum: Tech blog (https://communities.curl.com/forumdisplay.php?fid=18)
+---- Forum: Baison log (https://communities.curl.com/forumdisplay.php?fid=27)
+---- Thread: WebLogic が不安定なときはメモリ割り当てを増やす (/showthread.php?tid=1055)



WebLogic が不安定なときはメモリ割り当てを増やす - umemura - 03-19-2014

★point1
 WebLogic をプログラムで操作するには WebLogic Scripting Tool が利用できる

★point2
 メモリの割り当て設定は、WebLogic をサービス起動している場合、レジストリの内容が反映される


WebLogic に、追加アプリケーションのデプロイ(インストール)をしようと思うと、
必ずWebLogic のコンソールがハングアップしてしまう、という状況が発生しました。


メモリ不足を疑い、メモリ割り当てをしている、commEnv.cmd と、startWeblogic.cmd の内容を修正し、
WebLogic を再起動したのですが、不安定なまま。
(具体的には、管理コンソールからログインは出来るが、デプロイメントページへ遷移するとハング)


このままでは、メモリ開放のためにアプリケーションを削除することも出来ないので、
とりあえず、WebLogic Scripting Tool で組んだファイル(pyshon/Jython)をバッチから起動して、
目的のアプリのみ削除しました。


■WLST コマンド リファレンス
http://docs.oracle.com/cd/E16340_01/web.1111/b55569/quick_ref.htm


再起動すると、デプロイメントページへ遷移することは出来るようになったのですが、
やはり、新しくアプリケーションをインストールしようとするとハング。

そこでよくよく考えたところ、現在のWebLogic は、サービスとして実行しているので、
サービスとしてインストールしたコマンドファイル(下記URL等が参考になる)に記述したメモリ割り当ての設定が
関係しているかも・・・と、思い、確認したところ、
やはり、インストールコマンドファイル 内には、「MEM_ARGS」という変数でメモリ割り当ての設定が記述されていた。

■WebLogic の自動起動
http://seesaawiki.jp/w/ysshn65535/d/WebLogic%20Win32%A4%C7%BC%AB%C6%B0%B5%AF%C6%B0


つまり、startWeblogic.cmd は関係なく、 commEnv.cmd の設定も、サービスをインストールする際に利用されるもので、
このファイルだけ修正しても、
すでにサービスとして登録された際の設定しか利用されないので、意味がないということ。

本来であれば、サービスをアンインストールして、
メモリ割り当てを修正したコマンドファイルを使って再インストールする必要があるのですが、
サービスインストール時に登録されるレジストリの内容を、レジストリエディタを使って修正

 修正は、サービス名で検索し、下位ディレクトリ「Parameters」の[CmdLine」のメモリ設定値を、
 「-Xms1024m -Xmx2048m -XX:MaxPermSize=1024m」に修正

これで再度、WebLogicを再起動したところ、アプリケーションの削除、インストールなどが安定しました。


知っている人からすれば、WebLogic のメモリ割り当ては、たいした作業ではないのでしょうが、
私居はサーバー管理について門外漢なので、手探りでの作業になってしまいました。




RE: WebLogic が不安定なときはメモリ割り当てを増やす - umemura - 01-07-2015

追記

別システムの開発のため、WebLogic上に、二つ目のドメインを作成しました。
このドメインを、サービスとしてインストールしようと思ったのですが、
メモリの割り当てがうまくいかない。

構成は下記のような感じ


サービスのインストールファイル(installSvc.cmd)
 Oracle\Middleware\wlserver_10.3\server\bin\installSvc.cmd
 (内部で、「メモリ等設定ファイル」を呼び出している)

メモリ等設定ファイル(commEnv.cmd)
 Oracle\Middleware\wlserver_10.3\common\bin\commEnv.cmd
 (サービスのインストールファイルから呼び出される)


サービスインストールファイル呼び出し用バッチコマンドファイル
下記サイト等を参考に独自に作成
 http://seesaawiki.jp/w/ysshn65535/d/WebLogic%20Win32%A4%C7%BC%AB%C6%B0%B5%AF%C6%B0
 https://docs.oracle.com/cd/E28389_01/web.1111/b60991/winservice.htm
 (環境変数の設定と、サービスのインストールファイルを呼び出す)


うまくいかない、というのは、「サービスインストールファイル呼び出し用バッチコマンドファイル」の
環境変数「MEM_ARGS」に設定した値が反映されない、というもの。
レジストリで「HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services」配下のサービスを検索し、
そのなかの「Parameter」を見ると、「CmdLine」というキー名に、起動パラメータと思われる、
「-server -Xms1024m -Xmx2048m -XX:MaxPermSize=1024m -XX:+UseSpinning ...」
という値が入っている。

これが、呼び出し元のバッチコマンドで「MEM_ARGS」に設定した値と異なっている、という状態でした。
「commEnv.cmd」のコマンドを追っていくと、
どうやら、「Confusedun_prod_mod」というラベルに入ってきて、その中で「MEM_ARGS」を上書きしているような感じ。

とりあえず、現時点では「commEnv.cmd」の内容を修正してサービス化しましたが、
なら、そもそも、バッチで渡しているパラメータって、何の意味があるの?という状態です。

ちなみに、対象のバージョンは 11g です。