WebOTX Manual V10.2 (第4版) 目次を表示 |
WebOTX AS で既定としているJava VM オプションの変更方法とユーザ定義の独自のJava VM オプションの追加方法について説明します。
JDBCドライバや独自のライブラリをクラスパスに追加する方法について説明します。
WebOTX のクラスローダ構成の詳細は、[ 配備 > クラスローダ ] を参照してください。
運用管理コマンド(otxadmin)を利用することにより任意の場所にあるライブラリをクラスパスに追加できます。追加はWebOTXのシステムライブラリより下位のクラスローダに対して行われます。よってWebOTXのシステムライブラリが先に検索されます。
以下のコマンドを実行します。
確認otxadmin> get server.java-config.server-classpath設定
otxadmin> set server.java-config.server-classpath=<クラスパス>
例: クラスパスにD:\mylib.jarを追加
otxadmin> set server.java-config.server-classpath=D:\\mylib.jar
ライブラリを${INSTANCE_ROOT}/lib/extディレクトリに配置することにより自動的にそのライブラリをクラスパスに追加することができます。ここにjar, zipファイルをコピーするとWebOTXのシステムライブラリより上位のクラスローダによってロードされます。このため、例えばJava EEのAPIクラスなど、WebOTXのシステムライブラリに含まれるクラスを含むライブラリをここに配置すると、クラスロードの依存関係が変わり、ドメインが起動できなくなる可能性がありますので注意してください。
JDK 9以降では拡張機能メカニズムが廃止されたため、${INSTANCE_ROOT}/lib/extに配置してもロードされません。
ライブラリを${INSTANCE_ROOT}/libディレクトリにコピーすることにより自動的にそのライブラリをクラスパスに追加することができます。ここにjar, zipファイルをコピーするとWebOTXのシステムライブラリより後で検索されます。
プロセスグループの環境変数CLASSPATHを指定するとそのプロセスグループのクラスパスを指定することができます。
EJBコンテナおよびWebコンテナはExpressとStandardでは、実行されるJava VMのプロセスが異なります。Expressの場合は、同じエージェントプロセス上で動作しますが、Standardの場合は、エージェントプロセスとは別のプロセスグループのJava VM上で動作します。なお、Standardの場合でも、アプリケーションをエージェントプロセスに配備した場合は、Expressと同様にエージェントプロセス上で動作します。
エディション別のコンテナがロードするライブラリと、検索の優先順位を以下に示します。優先度の高いもの順から記述しています。“○” はロードされることを示し、”×”はロードされないことを示します。
設定方法 | Express | Standard | |
---|---|---|---|
エージェントプロセス | プロセスグループ | ||
${INSTANCE_ROOT}/lib/ext への配置 (JDK 8) |
○ | ○ | ○ |
WebOTXシステムライブラリ | ○ | ○ | ○ |
プロセスグループの環境変数CLASSPATHへの追加 | × | × | ○ |
${INSTANCE_ROOT}/lib | ○ | ○ | ○ |
server-classpath | ○ | ○ | ○ |
Java VM のメモリサイズに関する設定項目として以下のものがあります。
オプション名 | オプションの役割 | 属性 |
---|---|---|
-Xms | 初期Javaヒープサイズ | server.java-config.heap-size |
-Xmx | 最大Javaヒープサイズ | server.java-config.max-heap-size |
-XX:PermSize | 初期Javaパーマネントサイズ | server.java-config.perm-size |
-XX:MaxPermSize | 最大Javaパーマネントサイズ | server.java-config.max-perm-size |
運用管理コマンド(otxadmin)を利用することによりJava VM のヒープサイズを設定することができます。
以下に、最大ヒープサイズの場合の実行方法を記載します。そのほかの値につきましては、「max-heap-size」の箇所を変更したい属性名に変更してください。
確認otxadmin> get server.java-config.max-heap-size設定
otxadmin> set server.java-config.max-heap-size=<最大ヒープサイズ>
例: 最大ヒープサイズを512mに設定
otxadmin> set server.java-config.max-heap-size=512m
JDK 8にはパーマネント領域が存在しないため、パーマネント領域の設定は無視されます。
GCログに関する設定項目として以下のものがあります。
オプション名 | オプションの役割 | 属性 |
---|---|---|
-verbose:gc | GCログ採取(標準出力) | server.java-config.verbose-gc-enabled |
-Xloggc | GCログ採取(指定ファイルへの出力) | server.java-config.heap-size |
設定方法は[Java VM のヒープサイズの設定方法]と同様です。
ネイティブライブラリパスに関する設定項目として以下のものがあります。
オプション名 | オプションの役割 | 属性 |
---|---|---|
-java.library.path | ネイティブライブラリパス | server.java-config.native-library-path-prefix |
server.java-config.native-library-path-suffix |
ネイティブライブラリパスであるjava.library.pathシステムプロパティへのパスの追加には [ Java VM のヒープサイズの設定方法 ] と同様の手順で行うことができます。
但し、ネイティブライブラリパスへの追加はパスの順序の違いにより以下の2通りがあります。
java.library.pathの先頭に追加
java.library.pathの末尾に追加
デバッグオプションに関する設定項目として以下のものがあります。
オプション名 | オプションの役割 | 属性 |
---|---|---|
-Xdebug | デバッグ有効オプション | server.java-config.debug-enabled |
-Xrunjdwp | jdwpロードオプション | server.java-config.debug-options |
設定方法は [ JavaVM のヒープサイズの設定方法 ]と同様です。
プロセスグループへ既定のJava VMオプションを設定する場合、otxadminコマンド及び運用管理ツールを用いて設定することが可能です。
otxadminコマンドを使用する場合、設定可能な属性値は、以下のコマンドで確認することが可能です
otxadmin> get tpsystem.applicationGroups.<アプリケーショングループ名>.processGroups.<プロセスグループ名>.*
設定例は以下の通りです。
otxadmin> get tpsystem.applicationGroups.<アプリケーショングループ名>.processGroups.<プロセスグループ名>.maxHeapSize=1024
ドメイン起動のJava VMに独自のオプションを設定する方法について説明します。
運用管理コマンド(otxadmin)を利用することにより、任意の場所にあるライブラリをクラスパスに追加したり、Java VMの動作を調整するためのオプションを指定したりすることができます。なお運用管理コマンド「create-jvm-options」、「delete-jvm-options」については「運用管理コマンドリファレンスマニュアル」を参照してください。
以下のコマンドを実行します。
otxadmin> get server.java-config.jvm-options
otxadmin> create-jvm-options <オプション名>=<値>
otxadmin> delete-jvm-options <オプション名>
otxadmin> create-jvm-options -Dmy-debug-option=true
なお、「<オプション名>=<値>」の形式にならないオプションを設定、削除する場合は明示的にオプションの終了を示す':'(コロン)を最後に付け加えてください。
例) オプション -agentlib:hprof(プロファイル採取)を追加
otxadmin> create-jvm-options -agentlib:hprof:
オペランドの前に'--'を記述することでも実行可能です。
otxadmin> create-jvm-options -- -agentlib:hprof
プロセスグループへユーザ独自のJava VMオプションを追加する場合、add-pg-javasystem-property コマンド及び運用管理ツールを用いて設定することが可能です。
ユーザ独自のJava VMオプションの追加方法を参照し、独自のシステムプロパティを追加してください。
各プロセスグループに対して、プロセスグループへユーザ独自のJava VMオプションを追加する方法 を参照し、独自のシステムプロパティを追加してください。
また、エージェントプロセスに対して設定したシステムプロパティを、下記設定を行うことで全てのプロセスグループに反映することも可能です。
[アプリケーションサーバ] > [JVM構成] > [JVMオプション]タブを選択し、表示される[システムプロパティをプロセスグループに反映]にチェックを入れます。
otxadmin> set server.java-config.use-processgroups=true
設定後、プロセスグループを再起動してください。
予めシステム側で設定しているオプションを参照したり、それらの値に変更を加える場合には、次のように指定してください。
otxadmin> get server.java-config.system-jvm-options
otxadmin> create-jvm-options --system <オプション名>=<値>
otxadmin> delete-jvm-options --system <オプション名>
otxadmin> delete-jvm-options --system -Djava.ext.dirs=<現在のプロパティ値>
otxadmin> create-jvm-options --system -Djava.ext.dirs=<新規のプロパティ値>