Weblogic如何打印线程(linux)
使用背景
一般应用于服务器繁忙或是无响应时,我们需要看一下线程的状态和详细信息。
注意事项
先不要重启服务器,在服务器无响应的时候执行下面获取步骤。
Windows
请在服务器无响应时,执行打印进程信息,打印线程信息有两个方法:
方法一
要求JDK版本为1.6及其以上版本。
1、在运行中打开cmd命令行窗口。
2、在cmd窗口进入JDK的bin目录下,执行jps获取进程信息,此处要保证执行的JDK是服务器使用的JDK。
命令行:cd F:\WebLogic\jdk160_18\bin
jps
3、获取对应线程号,然后执行jstack +进程号 > 进程号.log 获取线程信息 :WebLogic显示名称应该是Server
4、可以在 F:\WebLogic\jdk160_18\bin 目录下看到生成的线程文件。
方法二
1、通过CMD命令行窗口进入JDK的bin目录下
2、使用netstat -ano|find "访问的端口号"|find "LISTENING" 获取进程号(注意双引号是必须的)
如访问smartbi的端口号是7001,则输入命令:netstat -ano|find "7001"|find "LISTENING"
3、再使用jstack 进程号 >进程号.log 获取线程信息,如果提示无法连接到JVM,可以增加-F参数强制生成jstack -F 进程号 >进程号.log
或者:
Linux
备注:如何选择JDK?
如果没有进行修改过JDK的环境变量操作,就任何JDK都可以;如果不确定是否修改过,就直接使用正在运行的JDK,具体可通过smartbi应用所在域里边找到setDomainEnv.sh 文件查看,如下边截图是把smartbi部署在hh_domain域下的:/home/admin/weblogic1033/Middleware/user_projects/domains/hh_domain/bin