//来源:http://middlewaremagic.com/weblogic/?p=549 import java.io.IOException; import java.net.MalformedURLException; import java.util.Hashtable; import javax.management.MBeanServerConnection; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; import javax.naming.Context; import weblogic.management.runtime.*; public class CompleteWebLogicMonitoring { private static MBeanServerConnection connection; private static JMXConnector connector; private static final ObjectName service; static { try { service = new ObjectName("com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean"); }catch (MalformedObjectNameException e) { throw new AssertionError(e.getMessage()); } } public static void initConnection(String hostname, String portString, String username, String password) throws IOException, MalformedURLException { String protocol = "t3"; Integer portInteger = Integer.valueOf(portString); int port = portInteger.intValue(); String jndiroot = "/jndi/"; String mserver = "weblogic.management.mbeanservers.domainruntime"; JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname,port, jndiroot + mserver); Hashtable h = new Hashtable(); h.put(Context.SECURITY_PRINCIPAL, username); h.put(Context.SECURITY_CREDENTIALS, password); h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,"weblogic.management.remote"); connector = JMXConnectorFactory.connect(serviceURL, h); connection = connector.getMBeanServerConnection(); } public static ObjectName[] getServerRuntimes() throws Exception { return (ObjectName[]) connection.getAttribute(service,"ServerRuntimes"); } public void printNameAndState() throws Exception { ObjectName[] serverRT = getServerRuntimes(); System.out.println(" Server State"); int length = (int) serverRT.length; for (int i = 0; i < length; i++) { String name = (String) connection.getAttribute(serverRT[i],"Name"); String state = (String) connection.getAttribute(serverRT[i],"State"); System.out.println( name + " : " + state); } } public void threadDump() throws Exception { ObjectName[] serverRT = getServerRuntimes(); int length = (int) serverRT.length; for (int i = 0; i < length; i++) { String name = (String) connection.getAttribute(serverRT[i],"Name"); ObjectName executeQueueRT[] = (ObjectName[]) connection.getAttribute(serverRT[i],"ExecuteQueueRuntimes"); System.out.println("\n....<"+name+"> :<ExecuteQueueRuntimes>..........Length: "+executeQueueRT.length); for(int k=0;k<executeQueueRT.length;k++) { ExecuteThread[] executeThreads=(ExecuteThread[])connection.getAttribute(executeQueueRT[k], "ExecuteThreads"); for(int j=0;j<executeThreads.length;j++) { String currReq=executeThreads[i].getCurrentRequest() ; String threadName=executeThreads[i].getName(); String appName=executeThreads[i].getApplicationName() ; int servicedRequestTotalCount=executeThreads[i].getServicedRequestTotalCount(); System.out.println("getName : " +threadName); System.out.println("getCurrentRequest : " +currReq); System.out.println("getApplicationName : " +appName); System.out.println("getServicedRequestTotalCount : " +servicedRequestTotalCount); System.out.println(".......................................\n"); } } } } public static void main(String[] args) throws Exception { if(args.length < 4) { System.out.println("<Usage>: java CompleteWebLogicMonitoring adm-host adm-port adm-username adm-password"); System.exit(0); } String hostname = args[0]; String portString = args[1]; String username = args[2]; String password = args[3]; CompleteWebLogicMonitoring s = new CompleteWebLogicMonitoring(); initConnection(hostname, portString, username, password); s.printNameAndState(); s.threadDump(); connector.close(); } }
相关推荐
通过JMX,你可以获取到WebLogic服务器的运行时信息,如JVM内存使用情况、线程状态、应用程序的健康状况等。 Tomcat则是一个开源的轻量级应用服务器,主要用于Servlet和JSP的部署。虽然Tomcat相对较小巧,但同样支持...
启动WebLogic Server通常通过执行`startManagedWebLogic.sh`或`startWebLogic.sh`脚本完成,而停止则使用`stopManagedWebLogic.sh`或`stopWebLogic.sh`。手册会指导用户如何正确执行这些命令,并处理可能出现的问题...
### WebLogic的MX程序设计详解 ...此外,还详细讲解了如何使用JMX监控WebLogic Server的关键指标,为运维人员提供了强大的工具支持。希望本文能帮助读者更好地理解和运用JMX来提高WebLogic Server的管理水平。
7. **集成与互操作性**:WebLogic能够与Oracle数据库、其他中间件产品(如Oracle Coherence)以及各种企业信息系统(如ERP、CRM)进行集成,实现数据共享和业务流程自动化。 8. **Web服务**:支持SOAP、RESTful等...
WebLogic基础培训教材是针对Oracle WebLogic Server这一...总的来说,WebLogic基础培训教材是学习WebLogic Server操作和管理的宝贵资源,通过深入学习和实践,可以提升开发者和管理员在企业级Java应用环境中的技能。
在`ENV.ppt`文件中,可能详细阐述了如何配置WebLogic Server的环境变量,包括JAVA_HOME、WL_HOME等,以及如何设置系统路径以确保正确执行WebLogic Server的命令行工具。此外,还可能涵盖了与操作系统环境相关的配置...
WebLogic Server是一款由Oracle公司开发的企业级Java应用服务器,它为构建、部署和管理企业级Java应用程序提供了强大的支持。在WebLogic的运行过程中...通过监控和持续调整,可以有效提升WebLogic的运行效率和稳定性。
WebLogic Server提供了丰富的监控工具,包括控制台、JMX MBeans和日志分析,可以实时查看服务器性能指标,如CPU使用率、内存占用、请求处理速度等,以便及时发现和解决问题。 【部署应用管理】 应用部署涵盖了从...
- **线程监控**:通过WebLogic Server的管理控制台或JMX接口,可以检查服务器的线程状态,发现可能的死锁或阻塞问题。 - **JDBC监控**:监控JDBC数据源的连接池状态,包括已分配、空闲和等待的连接数,以及可能...
本篇文章将深入探讨WebLogic Server 10的详细配置以及性能优化策略,旨在帮助管理员和开发者更好地理解和操作这款强大的中间件。 一、WebLogic 10配置详解 1. **系统环境配置**:在开始WebLogic Server 10的配置前...
1. 性能监控:利用Weblogic提供的JMX(Java Management Extensions)和JConsole等工具监控服务器性能,包括CPU、内存、线程、网络等指标。 2. 应用服务器调整:根据应用负载调整线程池大小,优化JVM堆大小设置,启用...
在WebLogic中,监控可以通过多种方式实现,包括使用内置的管理控制台、WLST(WebLogic Scripting Tool)以及编写自定义脚本。以下是一些可能在该博客中讨论的知识点: 1. **WebLogic Scripting Tool (WLST)**: WLST...
- Java Management Extensions (JMX) 提供了管理WebLogic Server的接口,通过JMX可以监控应用服务器的性能和状态,例如,通过JConsole或VisualVM等工具。 3. **诊断框架** - WebLogic Server的诊断框架...
WebLogic的JMX端口可能需要在域配置中查找,通常在`config.xml`文件中。 5、**连接WebLogic**:在JProfiler中,你需要提供WebLogic服务器的认证信息(通常是管理员用户名和密码),以便JProfiler能与WebLogic建立...
域的配置信息通过XML格式的`config.xml`文件定义,该文件位于安装目录`install_dir/config/domain_name`中。 - **管理服务器**:运行管理服务的WebLogic服务器。管理服务负责集中管理和监控域内所有资源。一个域...
- **采样器**:用于分析程序的 CPU 和内存使用情况,通过采样来获取详细数据。 #### 三、监控远程服务器上的 Java 程序 要监控远程服务器上的 Java 应用程序,如 WebLogic 服务器,需要进行额外的配置。 ##### 1....
- **溢出条件设置**:通过配置执行队列的溢出条件,当达到队列长度阈值百分比时,WebLogic会增加额外线程处理请求。然而,增加线程可能导致资源过度消耗,因此应谨慎设置。 5. **JDBC连接池调优**: - 调整JDBC...
3.2 WLST(WebLogic Scripting Tool):这是一种命令行工具,允许管理员通过脚本自动化执行WebLogic的管理任务,提高效率。 四、部署与管理应用程序 4.1 部署模型:学习WebLogic支持的不同部署模型,如EAR、WAR、...
- **JMX监控**:通过JMX接口可以远程监控JVM状态,获取内存、线程、Garbage Collection等信息。 - **JIT编译**:JVM中的即时编译器能将热点代码编译为本地机器码,提升运行效率。 4. **学习资源** - "weblogic...