2014-03-26 19 views
1

我有積極的MQ和愛馬仕JMS。InstanceNotFoundException當試圖發現在愛馬仕隊列JMS

JMX連接活躍MQ在activemq.xml啓用:

<managementContext> 
    <managementContext createConnector="true"/> 
</managementContext> 

但是,當我試圖發現在愛馬仕的JMS活動MQ會話隊列我得到InstanceNotFoundException例外:

javax.management.InstanceNotFoundException: org.apache.activemq:BrokerName=localhost,Type=Broker 
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095) 
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:643) 
    at com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:678) 
    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1464) 
    at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:97) 
    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1328) 
    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1420) 
    at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:657) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) 
    at sun.rmi.transport.Transport$1.run(Transport.java:177) 
    at sun.rmi.transport.Transport$1.run(Transport.java:174) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at sun.rmi.transport.Transport.serviceCall(Transport.java:173) 
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811) 
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:724) 
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275) 
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252) 
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161) 
    at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source) 
    at javax.management.remote.rmi.RMIConnectionImpl_Stub.getAttribute(Unknown Source) 
    at javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.getAttribute(RMIConnector.java:902) 
    at hermes.ext.activemq.ActiveMQAdmin.discoverDestinationConfigs(ActiveMQAdmin.java:140) 
    at hermes.impl.HermesAdminAdapter.discoverDestinationConfigs(HermesAdminAdapter.java:82) 
    at hermes.impl.DefaultHermesImpl.discoverDestinationConfigs(DefaultHermesImpl.java:1126) 
    at hermes.browser.tasks.DiscoverDestinationsTask.invoke(DiscoverDestinationsTask.java:77) 
    at hermes.browser.tasks.TaskSupport.run(TaskSupport.java:175) 
    at hermes.browser.tasks.ThreadPool.run(ThreadPool.java:170) 
    at java.lang.Thread.run(Thread.java:724) 

我我正在使用Hermes 1.14Active MQ 5.9

回答

0

Hermes JMS使用JMX來發現代理上的隊列。

Apache 5.8更改了名稱JMX MBeans這意味着Active Mq不會找到它正在查找的MBean(因此實例未找到異常)。我試圖用Active MQ 5.1發現隊列,它工作。

沒有辦法解決它。愛馬仕JMS的作者必須更新代碼來支持Active MQ 5.8+

的MBean中的ActiveMQ 5.1: enter image description here

的MBean中的ActiveMQ 5.9: enter image description here