我怎样才能获得关于 weblogic 的所有 mbean?
Posted
技术标签:
【中文标题】我怎样才能获得关于 weblogic 的所有 mbean?【英文标题】:how can I get all the mbeans about weblogic? 【发布时间】:2019-05-14 03:20:27 【问题描述】:当我使用 jconsole 访问 weblogic 的 mbean 时,我只能得到一些关于 jvm 的信息,比如 'java.lang'。但我想要得到的是关于 'jdbc'、'jta'、'ejb'、'servlet' ...
不知是否可以通过service:jmx:rmi:///jndi/rmi://10.0.99.102:7997/jmxrmi 获取这些指标,用户名和密码。我认为很可能是我的配置有错误,但我不知道问题出在哪里。
然后我尝试了另一种方式。我启用了 iiop,但我无法通过 iiop 访问它。 我遇到了一些错误,例如无法检索 RMIServer 存根:javax.naming.NameNotFoundException。 尝试解决这个错误,我将 wljarbulder.jar 添加到我的项目中,然后出现另一个错误,'查找中未处理的异常,原因是:javax.naming.NamingException 查找中未处理的异常 [根异常是 org.omg.CORBA.NO_PERMISSION ...'。
我只需要获取 weblogic 的 mbean 信息,我正在尝试通过 jmx 监控 weblogic。 (我收集了weblogic的snmp oid,但还不足以完成我的监控计划)
谢谢。
【问题讨论】:
【参考方案1】:实际上,我发现了问题所在。 看来iiop默认的用户名和密码必须和weblogic Admin设置的一样。 我不明白为什么会这样,但是当我阅读一篇博客并尝试时,我得到了数据。
我不确定我是否可以通过这个获得所有mbean数据,但它至少连接成功并显示大量数据。
我现在应该使用 jconsole 找到我想要的值。emmm,但是我无法通过 jconsole 连接。但这是下一个问题。
【讨论】:
【参考方案2】:首先将这些参数添加到您的 WebLogic Server 实例中:
-Dcom.sun.management.jmxremote -Djavax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder -Dcom.sun.management.jmxremote.port=6789 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false其次,启动 jconsole:
jconsole.exe -J-Djmx.remote.protocol.provider.pkgs=weblogic.management.remote -J-Djava.class.path=%JAVA_HOME%\lib\jconsole.jar;%WL_HOME%\server\lib\weblogic.jar;%JAVA_HOME%\lib\tools.jar
并连接到端口 6789
【讨论】:
谢谢anwser。我可以通过jconsole在RMI中连接,但我只能通过RMI协议获取jvm信息。IIOP或t3带来足够的信息,我什至可以通过java代码使用iiop或t3连接。但我无法通过 jconsole 连接 IIOP 或 t3。我使用的 url 是 [link](service:jmx:iiop://ip:port/jndi/weblogic.management.mbeanservers.runtime)。打开 jconsole 的命令是jconsole -J-Djava.class.path="%JAVA_HOME%\lib\jconsole.jar;%JAVA_HOME%\lib\tools.jar;G:\java_jar\wlfullclient.jar;G:\java_jar\weblogic.jar" -J-Djmx.remote.protocol.provider.pkgs=weblogic.management.remote
我重复了几次之后,莫名其妙的连接成功了。以上是关于我怎样才能获得关于 weblogic 的所有 mbean?的主要内容,如果未能解决你的问题,请参考以下文章