我试图将JMX与activeMQ一起用于监控。到目前为止,我一直将其作为参考,但到目前为止我无法远程连接到JMX,而且我在activeMQ日志中没有看到任何提到JMX url的内容。我想知道是否有其他方法来确保jmx工作正常?它应该在activemq日志中显示吗?PS我正在使用jdk1.7和activeMQ 5.14.2。
提前感谢!
编辑
我在activemq.xml文件中设置了useJmx="true ":
<broker xmlns="http://activemq.apache.org/schema/core" brokerName="primary" useJmx="true" dataDirectory="${activemq.data}">
我尝试了两个步骤:
我尝试将管理上下文从createConnector="false"更改为:
<managementContext>
<managementContext createConnector="true" connectorPort="1099"/>
</managementContext>
我恢复了我为managmentContext所做的更改,并尝试设置:
ACTIVEMQ_SUNJMX_START="-Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_BASE}/jmx.password -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_BASE}/jmx.access"
在 bin/activemq 脚本中,我在 conf/jmx.access 文件中设置了一个用户名:
admin readwrite
并在conf/jmx.password中设置了密码:
admin activemq
现在ACTIVEMQ根本没有运行,但如果我设置AUTHENTICATE=FALSE并删除JMX,它将运行。访问和JMX。BIN/ACTIVEMQ文件中的密码配置,但出于安全原因,我需要用户名和密码。我发现这篇文章与我的问题完全相同。有什么想法吗?
几个故障排除步骤:
>
在同一系统上启动jconsole或visualvm,并使用“pid”附加方法进行连接。浏览MBean并确认org.apache。存在activemq bean
运行netstat-na并确认端口1099(和44444)处于侦听状态
查看日志并确认您没有任何“Java . net . bind exception:Address used in use ..”指示端口与已经运行的Java进程冲突的消息。
编辑 bin/env 以配置 JMX(这将禁用需要 SSL,将端口设置为 1099 并禁用需要用户名和密码。
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=1099 "
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false "
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote "
# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password"`
# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access"
默认情况下,启用远程监控的密码验证。要禁用它,请在启动JVM时设置以下系统属性:-Dcom.sun.management.jmxremote . authenticate = false,就像您在第二个测试中所做的那样,但是您需要添加系统属性-DCOM . sun . management . JMX remote
尝试将这些jvm参数添加到env文件并更新主机ip
-Djava.net。preferIPv4Stack=true-Djava.rmi.server.hostname=X.X.X
更新
所以,继续说,我认为你尝试的第一步是最好的,为了让它工作,这些是步骤:
>
恢复所有 jmx env 文件更改,如下所示:
# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.port=1099 "
# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.password.file=${ACTIVEMQ_CONF}/jmx.password"
# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.access.file=${ACTIVEMQ_CONF}/jmx.access"
# ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote.ssl=false"
ACTIVEMQ_SUNJMX_START="$ACTIVEMQ_SUNJMX_START -Dcom.sun.management.jmxremote"
<代码>
<managementContext>
<managementContext createConnector="true" connectorPort="1099" />
</managementContext>
验证您是否在 AMQ 日志中具有
INFO|JMX控制台可以连接服务:jmx: rmi://jndi/rmi://localhost:1099/jmxrmi|org.apache.activemq.broker.jmx.ManagementContext|JMX连接器
注意:假设10.10.10.16
是AMQ主机的IP。
尝试从AMQ主机以外的另一台机器使用url"service: jmx: rmi:///jndi/rmi://10.10.10.16:1099/jmxrmi"
连接j控制台而不使用user/pwd。
如果无法连接,请尝试如下方式:
<managementContext>
<managementContext createConnector="true" connectorPort="1099" connectorHost="10.10.10.16" />
</managementContext>
验证您是否在 AMQ 日志中具有
< code>INFO | JMX控制台可以连接到服务:JMX:RMI:///JNDI/RMI://10 . 10 . 10 . 16:1099/JMX RMI | org . Apache . ActiveMQ . broker . JMX . management context | JMX连接器
重试连接,步骤 4
在这一步,通常您可以连接jconsole。
<managementContext>
<managementContext createConnector="true" connectorPort="1099" connectorHost="10.10.10.16" >
<property xmlns="http://www.springframework.org/schema/beans" name="environment">
<map xmlns="http://www.springframework.org/schema/beans">
<entry xmlns="http://www.springframework.org/schema/beans" key="jmx.remote.x.password.file"
value="${activemq.conf}/jmx.password"/>
<entry xmlns="http://www.springframework.org/schema/beans" key="jmx.remote.x.access.file"
value="${activemq.conf}/jmx.access"/>
</map>
</property>
</managementContext>
</managementContext>
请尝试这些步骤,并让我知道您在哪个步骤中连接失败,并提供来自jconsole的错误消息。
我试图调用直接将一个项目添加到初始的中,如下所示,其中是我编写的PowerShell类(下面的示例使用类名: 但是,这会产生一个错误,提示它找不到此构造函数的重载: 找不到“列表`1”和参数计数“1”的重载。 虽然这样做有效,但我不确定为什么我不能使用我的PowerShell类作为类型。我的理解是,只有上下文绑定类型和(默认情况下)嵌套类型不能与泛型一起使用,但以下显示我的类不是: 我不确定Pow
我的代码看起来像 我的文件如下所示 当我运行程序时,我看到 我怎样才能修好它呢?
我正在使用mulestudio。我希望使用mule studio在jms队列中插入值。但是我已经做了所有需要的更改,但是队列没有在activemq中创建,我使用的是activemq-5.8.0版本,即使我添加了jar文件,我的配置也是 我已按照文档执行,但无法获得预期的队列我的错误日志是 你会帮助这一点,以及如何消费来自骡子给我任何例子文件的信息
我试图使用Keycloak AuthzClient在资源服务器中注册资源和相关权限。 我有一个启用authz服务的资源服务器“ResourceServer”。 使用AuthzClient(使用包含资源服务器客户机id和机密的json文件初始化),我可以获得PAT。 首先使用密码授权获取访问令牌: 然后将其交换为RPT: 我一直在试图理解为什么会这样。我还尝试在UmaPermissionRepres
/应用程序 index.html --sass ----style.scss --/css ----style.css Gulp CLI版本2.0.1和本地版本4.0.0 运行可以正确运行sass函数并编译我的sass文件。运行启动手表。。。 如果我在style.scss中更改一些样式并保存文件,我会得到: 但没有任何更改传播到css/style.css. 任何帮助都将不胜感激。
问题内容: 我在使用该功能时遇到了麻烦。 我只需要知道SQL查询是否返回零行。 我已经尝试过以下简单的语句: 类型是哪里。上面的代码似乎不起作用。无论是否为空,它将始终打印该消息。 我检查了SQL查询本身,当存在行时它正确返回了非空结果。 关于如何确定查询是否已返回0行的任何想法?我用谷歌搜索,找不到任何答案。 问题答案: ResultSet.getFetchSize()不返回结果数!从这里: 使