web-dev-qa-db-ja.com

catalina.shで設定されたJAVA_OPTSがTomcatプライベートインスタンスで機能しない

カタリナベースのcatalina.shにJava_OPTSを介してJVMオプションを配置しました。ただし、システムはこれらのオプションを選択しません。プロジェクトのプロパティとログファイルのパスを設定するためにプロファイリング情報を渡そうとしています。プライベートインスタンスのビンのsetenv.shでオプションを設定する必要があります。 Java_OPTSを表示するためにcatalina.shに入力したechoコマンドでさえ、出力されません-デフォルトはCATALINA_BASEなどです。印刷されますか。 catalina.shも処理されていますか?

結局のところ、私のシステムはsetenv.shで正常に動作します。なぜJava_OPTSがcatalina.shから取得されないのか興味があります。

Tomcat7がインストールされたUbuntu12.04とJDK1.7を使用しています。

ありがとう

4
user20507

Catalina.shファイルを編集することは想定されていません-そのファイルにそのように記載されています。代わりに、set your env ironmental variablesに、catalina.shと同じディレクトリ(CATALINA_BASE/binと呼ばれる)にsetenv.shファイルを作成します。 )そしてそれにあなたのコードを書いてください。

Java_OPTS変数を自分で設定する必要があり、bin/setenv.shファイルを作成し、実行可能ファイルchmod +x bin/setenv.shに設定して、次のように書き込みました。

Java_OPTS="$Java_OPTS -Xms128m -Xmx512m -server"

これにより、最初に割り当てられたメモリが128に、最大メモリが512MBに設定されました。そしてそれは働いていた。

6
cst1992

編集してください:/etc/default/Tomcat7または/etc/default/{user_who_runs_Tomcat}

例えば。:

*Java_OPTS="-Djava.awt.headless=true -Xmx2G -XX:+UseConcMarkSweepGC -server -XX:MaxPermSize=384m"*
1
konrad

catalina.shには多くの条件があります。間違った位置を編集したり、そのファイルの後半で上書きされたりしたことが何度もありました。 setenv.shは正常に機能し、それがまさにその目的です。Tomcatアップデートをインストールしていると想像してください。これにより、catalina.shが上書きされます。ただし、Tomcatにはsetenv.shが付属していないため、変更が上書きされることはありません。

さらに、CATALINA_OPTSの代わりにJava_OPTSを定義することもできます。これらはTomcatを起動するために使用されるオプションです。構成の一部がJava_OPTS="-Xmx16G -Xms16G"の場合、Tomcatをシャットダウンしようとすると、16Gヒープスペースが割り当てられます。シャットダウンプロセスは、Java_OPTSパラメーターを使用してJVMも生成します。起動プロセスのみが(CATALINA_OPTSに加えて)Java_OPTS環境で生成されるため、構成/調整する可能性が最も高くなります。そうしないと、ばかげたメモリ要件のためにTomcatを停止できないリスクがあります。 shutdown.shの。

1
Olaf Kock