当前位置:  开发笔记 > 编程语言 > 正文

如何在Websphere中启用JMX?

如何解决《如何在Websphere中启用JMX?》经验,为你挑选了4个好方法。

我想使用JConsole来监视我的Websphere应用程序,但我不知道如何启用JMX.



1> eljenso..:

以下信息适用于Windows上的Websphere 6.1.

首先,连接到MBean服务器的神奇URL是:

service:jmx:iiop://:/jndi/JMXConnector

如果您有默认的Websphere安装,则JNDI端口号可能是2809,2810,...取决于一个系统上安装的服务器数量以及您要连接的特定服务器.可以肯定的是,在启动Websphere时,请检查日志,因为它会转储一行

0000000a RMIConnectorC A   ADMC0026I: The RMI Connector is available at port 2810

如果您没有获得此行,请打开Websphere管理控制台并转到

应用程序服务器> server1>管理服务> JMX连接器

查看是否需要添加或更改配置.

第二个重要信息是在与服务器进行JMX时总是需要以下JAR:

com.ibm.ws.admin.client_6.1.0.jar

您可以在runtimesWebsphere目录中找到此JAR .无论您做什么,无论是以编程方式访问Websphere上的MBean,还是使用JConsole等,都使用魔术URL并始终包含此JAR.

对于本答案的其余部分,假设Websphere安装在D:\ prog\was61中.

要运行JConsole,请键入以下内容:

D:\prog\was61\java\bin>jconsole -J-Djava.class.path=d:\prog\was61\java\lib\tools.jar;D:\prog\was61\runtimes\com.ibm.ws.admin.client_6.1.0.jar

然后转到"高级"选项卡并输入魔术JMX URL.按连接,您应该看到MBean出现.

使用Sun JDK是一个完全不同的问题.您需要一个额外的JAR,它位于IBM JDK的lib中,而不是Sun的(ibmorb.jar),并且以下命令可能对您有用:

C:\Program Files\Java\jdk1.5.0_11\bin>jconsole -J-Djava.class.path="c:\Program Files\Java\jdk1.5.0_11\lib\jconsole.jar";"c:\Program Files\Java\jdk1.5.0_11\lib\tools.jar";D:\prog\was61\runtimes\com.ibm.ws.admin.client_6.1.0.jar;D:\prog\was61\java\jre\lib\ibmorb.jar

我说也许,因为它对我不起作用.我得到了一个很好的jndiUnavailCommErr错误消息,因为当我的Websphere安装正在监听2810时,它期望端口2809上的某些内容,尽管我在JMX URL中正确指定了端口2810.但是,如果您调整路径以指向Sun JDK,它可能适合您.这是我使用Sun的JDK连接到Websphere的最接近的.

最后说明:我尝试了基于RMI的解决方案,还有一个SOAP连接器可用,但还没有尝试过.

和J2EE,Websphere一样:好运,你需要它.



2> Robert Höglu..:

很简单.只需使用以下JMX参数启动Websphere:

-Djavax.management.builder.initial= 
-Dcom.sun.management.jmxremote 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.port=1099

然后启动JConsole或VisualVM并连接到localhost:1099

由于我不允许发布证明屏幕截图,我发布了visualvm"概述选项卡"中的信息.

PID: 12568
Host: localhost
Main class: 
Arguments: 
JVM: IBM J9 VM (2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223-20100808 (JIT enabled)
J9VM - 20100629_60535_lHdSMr
JIT - 20100623_16197_r8
GC - 20100211_AA)
Java: version 1.5.0, vendor IBM Corporation
Java Home: C:\Program Files\IBM\SDP\runtimes\base_v61\java\jre
JVM Flags: 
Heap dump on OOME: disabled



3> Boguś..:

也许它有点偏离主题,但我找到了一种从JConsole连接到WAS 7.0 JMX服务器的方法.不需要服务器设置,没有AppClient,只有一些JAR和一些小客户端设置.

使用以下脚本

@echo off 
set HOST=
set PORT=2809

set WAS_HOME=D:/Programy/IBM/WebSphere/AppServer

set THIS_DIR=E:/Home/Bogus/Pulpit

set CLIENTSAS=-Dcom.ibm.CORBA.ConfigURL=file:/%THIS_DIR%/sas.client.props
set PROVIDER=-Djava.naming.provider.url=corbaname:iiop:%HOST%:%PORT% 

set PROPS=
set PROPS=%PROPS% %CLIENTSAS%
set PROPS=%PROPS% %PROVIDER%

set CLASSPATH=
set CLASSPATH=%CLASSPATH%;%WAS_HOME%\java\lib\tools.jar
set CLASSPATH=%CLASSPATH%;%WAS_HOME%\runtimes\com.ibm.ws.admin.client_7.0.0.jar
set CLASSPATH=%CLASSPATH%;%WAS_HOME%\runtimes\com.ibm.ws.ejb.thinclient_7.0.0.jar
set CLASSPATH=%CLASSPATH%;%WAS_HOME%\runtimes\com.ibm.ws.orb_7.0.0.jar
set CLASSPATH=%CLASSPATH%;%WAS_HOME%\java\lib\jconsole.jar

set URL=service:jmx:iiop://%HOST%:%PORT%/jndi/JMXConnector

@echo on

:: %WAS_HOME%\java\bin\
java -classpath %CLASSPATH% %PROPS% sun.tools.jconsole.JConsole %URL%

如果目标服务器已禁用管理安全性,请注释掉CLIENTSAS和PROVIDER行.

如果启用了安全性,则还需要将sas.client.props文件放在THIS_DIR目录中.模板文件可以在WAS_profile\properties目录下找到.你将不得不做一些设置.这是我的sas.client.props的摘录

com.ibm.CORBA.securityEnabled=true

com.ibm.CORBA.authenticationTarget=BasicAuth
com.ibm.CORBA.authenticationRetryEnabled=true
com.ibm.CORBA.authenticationRetryCount=3
com.ibm.CORBA.validateBasicAuth=true
com.ibm.CORBA.securityServerHost=
com.ibm.CORBA.securityServerPort=
com.ibm.CORBA.loginTimeout=300
com.ibm.CORBA.loginSource=prompt

com.ibm.CORBA.loginUserid=
com.ibm.CORBA.loginPassword=

com.ibm.CORBA.krb5ConfigFile=
com.ibm.CORBA.krb5CcacheFile=

com.ibm.CSI.performStateful=true

com.ibm.CSI.performClientAuthenticationRequired=false
com.ibm.CSI.performClientAuthenticationSupported=true

# SET ALL THE FOLLOWING VALUES TO FALSE

com.ibm.CSI.performTLClientAuthenticationRequired=false
com.ibm.CSI.performTLClientAuthenticationSupported=false

com.ibm.CSI.performTransportAssocSSLTLSRequired=false
com.ibm.CSI.performTransportAssocSSLTLSSupported=false

com.ibm.CSI.performMessageIntegrityRequired=false
com.ibm.CSI.performMessageIntegritySupported=false

com.ibm.CSI.performMessageConfidentialityRequired=false
com.ibm.CSI.performMessageConfidentialitySupported=false

# COMMENT THIS OUT
#com.ibm.ssl.alias=DefaultSSLSettings


com.ibm.CORBA.requestTimeout=180

好 :)

连接后,将出现登录弹出窗口.输入您的管理员用户和密码(JConsole中的连接对话框中不需要用户和密码)

您可以从IBM JDK或Sun JDK运行JConsole.对于IBM,不需要其他设置.但是,对于Sun,您可能需要将orb.properties文件放在主目录中.该文件可以在com.ibm.ws.ejb.thinclient_7.0.0.jar中找到.



4> Tommy..:

我无法让这个工作.我得到的只是

与username @ service:jmx:iiop // localhost:2809/jndi/JMXConnector的连接未成功.你想再试一次吗?

然而,我做了以下工作:

    将"-Djavax.management.builder.initial = -Dcom.sun.management.jmxremote"添加到通用JVM参数中.

    将这些行添加到WebSphere/AppServer/java/jre/lib/management/management.properties

com.sun.management.jmxremote.port=9999
com.sun.management.jmxremote.authenticate=false
com.sun.management.jmxremote.ssl=false

但没有一个有用的mbeans出现..?

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有