![見出し画像](https://assets.st-note.com/production/uploads/images/160840060/rectangle_large_type_2_9d7019c5cb6d9e159a74b1424cd6f1cf.png?width=1200)
WebLogicのsetDomainEnv.shにおけるJVM設定を理解しよう
はじめに
WebLogicでは、setDomainEnv.shというファイルでJVMの動作設定を行います。このファイルは、WebLogicドメインの起動時に読み込まれる重要な設定ファイルです。今回は、この中でもよく使用されるJVM設定について、初心者にもわかりやすく解説していきます。
そもそもJVMって何?
JVM(Java Virtual Machine)は、Javaプログラムを動かすための「仮想的なコンピュータ」です。パソコンの中に作られた「専用の箱」のようなもので、この中でJavaプログラムが安全に効率よく動作します。
setDomainEnv.shとは?
setDomainEnv.shは、WebLogicドメインの環境変数を設定するシェルスクリプトです。このファイルは通常、以下のようなパスに配置されています:
${DOMAIN_HOME}/bin/setDomainEnv.sh
主要なJVM設定を理解しよう
今回は、以下のJVM設定について見ていきます:
JAVA_OPTIONS="${JAVA_OPTIONS} -Duser.timezone=JST
-Dweblogic.http.client.defaultConnectTimeout=10000
-Dweblogic.jndi.MSIlookupRequestTimeout=5000
-Dweblogic.security.MSILocalLDAPOnly=true
-Dweblogic.unicast.HttpPing=true
-XX:MaxMetaspaceSize=1024M"
1. タイムゾーンの設定
-Duser.timezone=JST
設定の目的:システムの時刻を日本標準時に設定
なぜ必要?:日時処理を日本時間で正しく行うため
設定がないと:国際時間での処理となり、日本のユーザーには不適切な時刻表示になる可能性
2. 接続タイムアウトの設定
-Dweblogic.http.client.defaultConnectTimeout=10000
設定の目的:外部サービスへの接続時間を制限
値の意味:10,000ミリ秒(10秒)
なぜ必要?:システムが無限に待ち続けることを防ぐため
況を防ぎます。
3. JNDIルックアップタイムアウト
-Dweblogic.jndi.MSIlookupRequestTimeout=5000
必要な情報やサービスを探す時間を5秒に制限します。図書館で本を探すように、「5秒探しても見つからなかったら、一旦諦める」というルールを設定するようなものです。
4. セキュリティ設定
-Dweblogic.security.MSILocalLDAPOnly=true
ユーザー情報の管理方法に関する設定です。同じサーバー内(ローカル)の情報だけを使うように指定することで、処理速度を向上させます。
5. 死活監視の設定
-Dweblogic.unicast.HttpPing=true
システムの健康状態を定期的にチェックする仕組みです。「元気ですか?」「はい、元気です」という確認作業を自動的に行います。
6. メモリ管理の設定
-XX:MaxMetaspaceSize=1024M
Javaプログラムの設計図(クラス)を保管する場所の大きさを制限します。工具箱のサイズを決めるようなもので、これにより必要以上にメモリを使用することを防ぎます。
設定値を変更する場合の注意点
必ずバックアップを取る
変更後はWebLogicの再起動が必要
変更の影響を理解してから実施
テスト環境での検証を推奨
トラブルシューティング
よくある問題と対処方法:
メモリ不足の場合
MaxMetaspaceSize値の調整
他のメモリ設定の見直し
タイムアウトエラーが頻発する場合
ConnectTimeout値の調整
ネットワーク状況の確認
まとめ
![](https://assets.st-note.com/img/1730890990-7eZigjdL8E9sKnuQOfW0pqHB.png?width=1200)
setDomainEnv.shのJVM設定は、WebLogicの安定運用に重要な役割を果たします。設定値は環境に応じて適切に調整する必要がありますが、その前提として各設定の意味を理解することが大切です。
・設定ファイルの場所:${DOMAIN_HOME}/bin/setDomainEnv.sh