java weblogic.wlst_利用weblogic.Admin以及WLST进行thread dump

1、weblogic816

C:\Documents and Settings\tony>java -cp E:\bea816\weblogic81\server\lib\weblogic.jar weblogic.Admin -url localhost:7001 -username weblogic -password weblogic THREAD_DUMP

Thread Dump has been printed to the servers standard out (by default, the shell

in which the server is running).

可以看到打印成功!

但是在9版本并不能使用该方法

2、weblogic923

启动server,打开wlst.cmd

连接到启动的AdminServer

Connect(‘weblogic’,’weblogic’,’t3://127.0.0.1:7001’)

threadDump()

可以看到写到了一个叫Thread_Dump_AdminServer.txt的文件里。

再次运行threadDump(),将会覆盖该文件。

因为目前是只启动了一个server,所以在进行dump的时候并没指定server,默认就对admin做了dump.

再启动一个server1.现在再次用不指定server的threadDump()仍旧只会产生admin的dump.

利用help命令,发现还有一个指定server的dump方法。

注意里面有个属性是是否写到文件,我这里是true.所以生成了dump文件.

3、weblogic10.0 for solarisx86

在soalris10上(weblogic10.0)操作wlst工具来进行线程堆栈成功。

wls:/mydomain/serverConfig> threadDump(writeToFile='true', fileName='/opt/bea10/threaddump1.txt')

......................

........................

.......................

"Reference Handler" waiting for lock java.lang.ref.Reference$[email=Lock@c2bce4]Lock@c2bce4[/email] WAITING

java.lang.Object.wait(Native Method)

java.lang.Object.wait(Object.java:474)

java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)

"main" waiting for lock [email=weblogic.t3.srvr.T3Srvr@ff2b7c]weblogic.t3.srvr.T3Srvr@ff2b7c[/email] WAITING

java.lang.Object.wait(Native Method)

java.lang.Object.wait(Object.java:474)

weblogic.t3.srvr.T3Srvr.waitForDeath(T3Srvr.java:747)

weblogic.t3.srvr.T3Srvr.run(T3Srvr.java:396)

weblogic.Server.main(Server.java:67)

The Thread Dump for server AdminServer

has been successfully written to /opt/bea10/threaddump1.txt

利用py文件来生成thread dump

(1).在已经进入了wlst的环境下

wls:/testDomain/serverConfig> execfile('/opt/bea10/user_projects/domains/testDomain/bin/threaddumpadmin.py')

Connecting to t3://192.168.0.55:7001 with userid weblogic ...

Successfully connected to Admin Server 'AdminServer' that belongs to domain 'testDomain'.

Warning: An insecure protocol was used to connect to the

server. To ensure on-the-wire security, the SSL port or

Admin port should be used instead.

Thread dump for the running server: AdminServer

"[ACTIVE] ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'" RUNNABLE

sun.management.ThreadImpl.getThreadInfo0(Native Method)

sun.management.ThreadImpl.getThreadInfo(ThreadImpl.java:142)

weblogic.platform.VM15.threadDumpAsString(VM15.java:22)

....................

The Thread Dump for server AdminServer

has been successfully written to /opt/bea10/threaddump2.txt

Exiting WebLogic Scripting Tool.

(2).没有进入wlst的情况

-bash-3.00# java -cp /opt/bea10/wlserver_10.0/server/lib/weblogic.jar weblogic.WLST threaddumpadmin.py

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

Connecting to t3://192.168.0.55:7001 with userid weblogic ...

Successfully connected to Admin Server 'AdminServer' that belongs to domain 'testDomain'.

Warning: An insecure protocol was used to connect to the

server. To ensure on-the-wire security, the SSL port or

Admin port should be used instead.

Thread dump for the running server: AdminServer

"[STANDBY] ExecuteThread: '5' for queue: 'weblogic.kernel.Default

(self-tuning)'" waiting for lock

[email=weblogic.work.ExecuteThread@18a290f]weblogic.work.ExecuteThread@18a290f[/email] WAITING

java.lang.Object.wait(Native Method)

....................

The Thread Dump for server AdminServer

has been successfully written to /opt/bea10/threaddump2.txt

Exiting WebLogic Scripting Tool.

下面是 threaddumpadmin.py的内容:

connect('weblogic','weblogic','t3://192.168.0.55:7001')

threadDump(writeToFile='true', fileName='/opt/bea10/threaddump3.txt')

exit()

另外还有一篇文章也是将如何使用wlst监控weblogic的,大家可以参考,附件wlst_v64大家可以到http://anselmo.homeunix.net/weblogic/weblogic%20tools/wlst_v64%20Folder/   下载:

如何使用wlst监控运行weblogic的内存使用情况

针对welbogic8.1.4,使用wlst_v64,检查正在运行的weblogic的内存使用情况。

1.1        准备环境

保证监控机器上,安装了java虚拟机(版本最好就是与weblogic8.1.4内java虚拟机一致的jdk142_05),下载了wlst_v64,并准备有weblogic8.1.4的weblogic.jar。

将wlst_v64目录下的wlst.jar、jython.jar,以及weblogic.jar,加入classpath中。并运行weblogic.WLST。

以windows系统为例,

CLASSPATH="d:\wlst_v64\wlst.jar";"d:\wlst_v64\jython.jar";"D:\bea\weblogic81\server\lib\weblogic.jar"

java -classpath %CLASSPATH% weblogic.WLST

1.2        连接到要监控的domain,并浏览目录

在执行java -classpath %CLASSPATH% weblogic.WLST后出现

D:\wlst_v64>java -classpath

"d:\wlst_v64\wlst.jar";"d:\wlst_v64\jython.jar";"D:

\bea\weblogic81\server\lib\weblogic.jar" weblogic.WLST

Initializing WebLogic Scripting Tool (WLST) ...

Welcome to WebLogic Server Administration Scripting Shell

Type help() for help on available commands

wls:/(offline)>

使用connect命令连接到要监控的domain

wls:/(offline)> connect('weblogic','weblogic','t3://127.0.0.1:7001');

Connecting to weblogic server instance running at t3://127.0.0.1:7001 as username weblogic ...

Successfully connected to Admin Server 'myserver' that belongs to domain 'mydomain'.

wls:/mydomain/config>

执行runtime(),进入运行期参数目录

wls:/mydomain/config> runtime()

wls:/mydomain/runtime>

浏览目录至ServerRuntimes/需要监控的server实例名/JVMRuntime/需要监控的server实例名,例如

wls:/mydomain/runtime> cd('ServerRuntimes/myserver/JVMRuntime/myserver')

到达目录后,查看HeapFreeCurrent、HeapSizeCurrent等指标

wls:/mydomain/runtime/ServerRuntimes/myserver/JVMRuntime/myserver> get("HeapFreeCurrent")

287631720L

1.3        wlst背景介绍

WebLogic Scripting Tool 是一种用于编写 BEA WebLogic 域配置脚本的 BEA 工具。目前,在 BEA

dev2dev Web 站点上,WLST 可以作为 WebLogic 8.1 的开发人员发行版使用。在 WebLogic Server

9中随版本发布中已经包含 WLST 。

WLST 具有以下两个版本:

* WLST Online : 可用于查询和修改正在运行的 WebLogic Server 域。

* WLST Offline : 可用于在不具备正在运行的 WebLogic Server 域的情况下构建 WebLogic 域。

本文中介绍的就是使用WLST Online来监控运行weblogic的内存使用情况。

除了使用脚本方式,调用wlst。亦可以直接在java代码和ant任务中,调用wlst。

package wlst;

import java.util.*;

import weblogic.management.scripting.utils.WLSTInterpreter;

import org.python.util.InteractiveInterpreter;

/**

* Simple embedded wlst example that will connect to a running server

* and creates 2 servers and assigns them to a newly created cluster and exits

*

Title: EmbeddedWLST.java

*

Copyright: Copyright (c) 2004

*

Company: BEA Systems

* @author Satya Ghattu ()

*/

public class EmbeddedWLST

{

static InteractiveInterpreter interpreter = null;

EmbeddedWLST() {

interpreter = new WLSTInterpreter();

}

static void connect() {

StringBuffer buffer = new StringBuffer();

buffer.append("connect('weblogic','weblogic')");

interpreter.exec(buffer.toString());

}

static void createServers() {

StringBuffer buf = new StringBuffer();

buf.append("man1=create('msEmbedded1','Server')\n");

buf.append("man2=create('msEmbedded2','Server')\n");

buf.append("clus=create('clusterEmbedded','Cluster')\n");

buf.append("man1.setListenPort(8001)\n");

buf.append("man2.setListenPort(9001)\n");

buf.append("man1.setCluster(clus)\n");

buf.append("man2.setCluster(clus)\n");

buf.append("saveDomain()\n");

buf.append("print 'Script ran successfully ...' \n");

interpreter.exec(buf.toString());

}

public static void main(String[] args) {

new EmbeddedWLST();

connect();

createServers();

}

}

使用wlst online除了可以监控运行状态外,亦可以完成在weblogic console中可以进行的所有工作,包括建立jdbc连接池、jms队列、新建server、配置cluster等。详细可以参看wlst_v64中scripts目录下的例子。

使用wlst offline可以从无到有的创建出一个weblogic域,实现域创建的全部自动化。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值