現状調査用です。
WebLogic 14.1.1.0.0で確認しています。もっとシンプルだった記憶がありましたが、Apache Tomcatと比較してもそれなりに調べるファイルがありました
まとめると以下の表程度は調査項目になると思います。
| 種類 | ファイルまたはディレクトリ | 役割 | 標準のパス |
|---|---|---|---|
| ドメイン設定 | config.xml | ドメイン全体の構成(サーバ、クラスタ、ポート、デプロイアプリ、JDBC/JMS 参照など) | $DOMAIN_HOME/config/config.xml |
| JDBC 設定 | jdbc/*.xml | データソース(DB 接続先 URL、JNDI 名、接続プール設定) | $DOMAIN_HOME/config/jdbc/*.xml |
| JMS 設定 | jms/*.xml | JMS サーバ/モジュール/キュー/トピック設定 | $DOMAIN_HOME/config/jms/*.xml |
| WLDF 診断設定 | diagnostics/*.xml | 診断ポリシー、監視ルール、ログ収集設定 | $DOMAIN_HOME/config/diagnostics/*.xml |
| 認証情報 | boot.properties | 起動時ユーザ/パスワード(暗号化保存) | $DOMAIN_HOME/servers/<ServerName>/security/boot.properties |
| JVM 環境 | setDomainEnv.sh / setDomainEnv.cmd | JVM オプション、CLASSPATH、ヒープサイズ、GC 方式設定 | $DOMAIN_HOME/bin/setDomainEnv.sh |
| サーバ起動 | startWebLogic.sh | 管理サーバ起動スクリプト(内部で setDomainEnv を呼ぶ) | $DOMAIN_HOME/startWebLogic.sh |
| サーバ起動 | startManagedWebLogic.sh | マネージドサーバ起動スクリプト | $DOMAIN_HOME/bin/startManagedWebLogic.sh |
| Node Manager | nodemanager.properties | Node Manager 設定(JVM オプション含むことも可) | $WL_HOME/common/nodemanager/nodemanager.properties |
| キャッシュ/ロック | configCache.xml / config.lok | config.xml のキャッシュとロック制御 | $DOMAIN_HOME/config/ |
WebLogic 設定ファイルからの直接調査方法
- 基本ファイルの位置
$DOMAIN_HOME/config/config.xml
$DOMAIN_HOME/config/jdbc/*.xml
$DOMAIN_HOME/config/jms/*.xml
$DOMAIN_HOME/config/diagnostics/*.xml
- config.xml から情報抽出
grep "<name>" $DOMAIN_HOME/config/config.xml
grep "<listen-port>" $DOMAIN_HOME/config/config.xml
サンプル:(xmlstarlet)
xmlstarlet sel -t -m "/domain/server" -v "name" -o " : " -v "listen-port" -n \
$DOMAIN_HOME/config/config.xml
- デプロイ済のアプリケーション
grep "<app-deployment>" -A3 $DOMAIN_HOME/config/config.xml
サンプル:xmlstarlet で JNDI 名を確認
xmlstarlet sel -t -m "/domain/app-deployment" -v "name" -n \
$DOMAIN_HOME/config/config.xml
- JDBC リソースを調査
・JDBC ファイル一覧
ls $DOMAIN_HOME/config/jdbc/*.xml
・データソースの URL 確認
grep -i "<url>" $DOMAIN_HOME/config/jdbc/*.xml
・サンプル:(xmlstarlet)
xmlstarlet sel -t -m "/jdbc-data-source/jdbc-driver-params" \
-v "../../name" -o " : " -v "url" -n \
$DOMAIN_HOME/config/jdbc/*.xml
データソース名 : 接続先URL が出力される
- JMS リソース調査
・JMS ファイル一覧
ls $DOMAIN_HOME/config/jms/*.xml
・キュー・トピック抽出
grep -i "<destination-key>" $DOMAIN_HOME/config/jms/*.xml
grep -i "<jms-queue>" $DOMAIN_HOME/config/jms/*.xml
grep -i "<jms-topic>" $DOMAIN_HOME/config/jms/*.xml
・サンプル:(xmlstarlet)
xmlstarlet sel -t -m "/jms-system-resource/jms-resource/jms-queue" \
-v "name" -n \
$DOMAIN_HOME/config/jms/*.xml
- Diagnostics (WLDF)の 調査
・定義ファイル確認
ls $DOMAIN_HOME/config/diagnostics/*.xml
・ポリシー名一覧
grep -i "<wldf-resource>" $DOMAIN_HOME/config/diagnostics/*.xml
- 一括調査スクリプト(WebLogic の設定ファイルを直接解析して一覧を CSV 出力する Bash スクリプト)
#!/bin/bash
# WebLogic ドメイン現状調査スクリプト
# 出力ファイル: weblogic_config_report.csv
DOMAIN_HOME=/u01/app/oracle/middleware/user_projects/domains/mydomain
OUTPUT=weblogic_config_report.csv
echo "Type,Name,Detail" > $OUTPUT
echo "=== Servers ==="
xmlstarlet sel -t -m "/domain/server" \
-v "concat('Server,', name, ',', listen-port)" -n \
$DOMAIN_HOME/config/config.xml >> $OUTPUT
echo "=== JDBC DataSources ==="
for f in $DOMAIN_HOME/config/jdbc/*.xml; do
xmlstarlet sel -t -m "/jdbc-data-source" \
-v "concat('JDBC,', name, ',', jdbc-driver-params/url)" -n $f >> $OUTPUT
done
echo "=== JMS Queues ==="
for f in $DOMAIN_HOME/config/jms/*.xml; do
xmlstarlet sel -t -m "/jms-system-resource/jms-resource/jms-queue" \
-v "concat('JMS Queue,', name, ',')" -n $f >> $OUTPUT
done
echo "=== JMS Topics ==="
for f in $DOMAIN_HOME/config/jms/*.xml; do
xmlstarlet sel -t -m "/jms-system-resource/jms-resource/jms-topic" \
-v "concat('JMS Topic,', name, ',')" -n $f >> $OUTPUT
done
echo "=== Applications ==="
xmlstarlet sel -t -m "/domain/app-deployment" \
-v "concat('Application,', name, ',', target)" -n \
$DOMAIN_HOME/config/config.xml >> $OUTPUT
echo "=== Diagnostics ==="
for f in $DOMAIN_HOME/config/diagnostics/*.xml; do
xmlstarlet sel -t -m "/wldf-resource" \
-v "concat('Diagnostics,', name, ',')" -n $f >> $OUTPUT
done
echo "調査結果を $OUTPUT に出力しました。"
ご参考まで