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」のコマンドを追っていくと、 どうやら、「un_prod_mod」というラベルに入ってきて、その中で「MEM_ARGS」を上書きしているような感じ。 とりあえず、現時点では「commEnv.cmd」の内容を修正してサービス化しましたが、 なら、そもそも、バッチで渡しているパラメータって、何の意味があるの?という状態です。 ちなみに、対象のバージョンは 11g です。 |