Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1733754
  • 博文数量: 163
  • 博客积分: 10591
  • 博客等级: 上将
  • 技术积分: 1980
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-08 18:17
文章分类

全部博文(163)

文章存档

2018年(1)

2012年(1)

2011年(47)

2010年(58)

2009年(21)

2008年(35)

分类: 系统运维

2011-08-18 19:45:02

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域,实现域创建的全部自动化。


阅读(5710) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~