在 Debian 上调试 WebLogic(Oracle WebLogic Server),一般可以从 日志、启动参数、线程/内存、远程调试、JVM 工具 等几个方面入手。下面按常见场景给你一个实用指南。
先确认基础信息,避免“版本差异导致的问题”:
cat /etc/debian_version
java -version
$WL_HOME/server/bin/setWLSEnv.sh
WebLogic 常用目录:
WL_HOME:/u01/oracle/weblogicDOMAIN_HOME:$WL_HOME/user_projects/domains/base_domain$DOMAIN_HOME/servers/AdminServer/logs/
关键文件:
AdminServer.log —— 服务器运行日志AdminServer.out —— 标准输出(启动信息、异常)<server-name>.log —— 受管服务器日志查看实时日志:
tail -f AdminServer.log
tail -f AdminServer.out
在 WebLogic Console:
Environment → Servers → <Server> → Logging → Debug
或编辑:
$DOMAIN_HOME/config/config.xml
cd $DOMAIN_HOME/bin
./startWebLogic.sh
如果后台启动失败:
nohup ./startWebLogic.sh > start.log 2>&1 &
tail -f start.log
编辑:
$DOMAIN_HOME/bin/setDomainEnv.sh
在 JAVA_OPTIONS 中加入:
export JAVA_OPTIONS="$JAVA_OPTIONS -Xdebug -Xrunjdwp:transport=dt_socket,address=8453,server=y,suspend=n"
suspend=y:启动时等待调试器(适合启动阶段问题)
jps -l
jstack <pid> > thread.txt
常见关注点:
BLOCKEDDeadlockwaiting onjmap -heap <pid>
jmap -histo <pid> | head -50
生成 dump:
jmap -dump:live,format=b,file=heap.hprof <pid>
用 MAT / VisualVM 分析。
ss -lntp | grep java
netstat -tunlp | grep 7001
iptables -L -n
ufw status
开放端口:
ufw allow 7001
ufw allow 8453
chown -R weblogic:weblogic $DOMAIN_HOME
chmod +x *.sh
ulimit -n
ulimit -u
建议:
ulimit -n 65536
ulimit -u 4096
✅ 启动失败 → 看 AdminServer.out
✅ 卡死 → jstack
✅ 内存溢出 → jmap + MAT
✅ 业务逻辑问题 → 远程调试
✅ 性能问题 → GC 日志 + VisualVM
如果你愿意,可以告诉我:
我可以给你 更精确的调试方案。