質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

Q&A

解決済

2回答

22860閲覧

tomcat8におけるJAVA_OPTSの設定方法

hirdd

総合スコア50

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Tomcat

TomcatはApache Software Foundation (ASF)で開発されたオープンソースのWebコンテナです。

0グッド

0クリップ

投稿2017/05/02 12:10

tomcat8において、serverの起動時に"-Djava.net.preferIPv4Stack=true"をjavaのruntime optionに設定するため、以下のように設定して再起動してみました。

[tomcat@rhel7 ~]$ JAVA_OPTS="-Djava.net.preferIPv4Stack=true"
[tomcat@rhel7 ~]$ echo ${JAVA_OPTS}
-Djava.net.preferIPv4Stack=true
[tomcat@rhel7 ~]$ /opt/apache-tomcat/apache-tomcat-8.5.14/bin/
catalina.sh shutdown.sh startup.sh version.sh
[tomcat@rhel7 ~]$ /opt/apache-tomcat/apache-tomcat-8.5.14/bin/shutdown.sh
Using CATALINA_BASE: /opt/apache-tomcat/apache-tomcat-8.5.14
Using CATALINA_HOME: /opt/apache-tomcat/apache-tomcat-8.5.14
Using CATALINA_TMPDIR: /opt/apache-tomcat/apache-tomcat-8.5.14/temp
Using JRE_HOME: /opt/ibm/java-x86_64-70
Using CLASSPATH: /opt/apache-tomcat/apache-tomcat-8.5.14/bin/bootstrap.jar:/opt/apache-tomcat/apache-tomcat-8.5.14/bin/tomcat-juli.jar
[tomcat@rhel7 ~]$ /opt/apache-tomcat/apache-tomcat-8.5.14/bin/startup.sh
Using CATALINA_BASE: /opt/apache-tomcat/apache-tomcat-8.5.14
Using CATALINA_HOME: /opt/apache-tomcat/apache-tomcat-8.5.14
Using CATALINA_TMPDIR: /opt/apache-tomcat/apache-tomcat-8.5.14/temp
Using JRE_HOME: /opt/ibm/java-x86_64-70
Using CLASSPATH: /opt/apache-tomcat/apache-tomcat-8.5.14/bin/bootstrap.jar:/opt/apache-tomcat/apache-tomcat-8.5.14/bin/tomcat-juli.jar
Tomcat started.

その後、以下のようにps -efで確認して見ましたが、"-Djava.net.preferIPv4Stack=true"は設定されていないようです。

[tomcat@rhel7 bin]$ netstat -pan | grep 8080
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp6 0 0 :::8080 :::* LISTEN 15623/java
[tomcat@rhel7 bin]$ ps -ef | grep 15623
tomcat 15623 1 0 23:32 pts/1 00:00:03 /opt/ibm/java-x86_64-70/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat/apache-tomcat-8.5.14/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /opt/apache-tomcat/apache-tomcat-8.5.14/bin/bootstrap.jar:/opt/apache-tomcat/apache-tomcat-8.5.14/bin/tomcat-juli.jar -Dcatalina.base=/opt/apache-tomcat/apache-tomcat-8.5.14 -Dcatalina.home=/opt/apache-tomcat/apache-tomcat-8.5.14 -Djava.io.tmpdir=/opt/apache-tomcat/apache-tomcat-8.5.14/temp org.apache.catalina.startup.Bootstrap start
tomcat 16168 15507 0 23:56 pts/1 00:00:00 grep --color=auto 15623
[tomcat@rhel7 bin]$

どのようにしたら、"-Djava.net.preferIPv4Stack=true"をjavaのruntime optionに設定できるでしょうか?どなたかご教授頂けないでしょうか。もしくは、何か勘違いしている箇所があれば、ご指摘頂けないでしょうか?

▪️OSバージョン
Red Hat Enterprise Linux Server release 7.3

▪️目的
IPv4, IPv6両方で(ポート8080)でリッスンしているのをIPv4のみに変更したい。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

Before

sh

1JAVA_OPTS="-Djava.net.preferIPv4Stack=true"
After

sh

1export JAVA_OPTS="-Djava.net.preferIPv4Stack=true"

exportを付けない場合、シェル変数に値をセットしていることになります。
シェル変数は、実行したコマンドには引き継がれません。

一方、exportを付けると、環境変数に値をセットします。
実行するコマンドに変数を引き継ぎたい場合は、環境変数を使用します。

投稿2017/05/02 13:15

KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hirdd

2017/05/03 02:11

なるほど、環境変数ではなく、シェル変数に設定してしまっていたのが原因だったのですね!ありがとうございます。ベストアンサーとさせていただきます。
guest

0

tomcat 起動時の JVM オプションは、tomcat インストールディレクトリの bin フォルダ(catalina.shとかがある所)に setenv.sh を用意して、その中で CATALINA_OPTS を設定するのが推奨される方法(他のJavaプログラムに影響を与えない)だと思うので、とりあえずそれで再挑戦してみるとよいでしょう。

投稿2017/05/02 13:01

koko_u

総合スコア936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hirdd

2017/05/03 02:09

setenv.shってもともとbinディレクトリにあるのかと思っていたんですが、自分で作成する必要があるんですね。setenv.shを作成してexportコマンドで設定したところ、上手くいきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問