UIMA AS jmx monitor throws javax.management.AttributeNotFoundException while
collecting stats
---------------------------------------------------------------------------------------------
Key: UIMA-1807
URL: https://issues.apache.org/jira/browse/UIMA-1807
Project: UIMA
Issue Type: Bug
Components: Async Scaleout
Affects Versions: 2.3AS
Reporter: Jerry Cwiklik
Assignee: Jerry Cwiklik
When initializing, the UIMA AS JMX monitor fetches and caches references to
UIMA MBeans to be used later to collect stats. It seems that the CM delegate
key, contained in ServiceInfoMBean is bad and subsequent JMX lookup returns an
invalid proxy reference to the CM Cas Pool. The exception:
java.lang.reflect.UndeclaredThrowableException
at $Proxy10.getAvailableInstances(Unknown Source)
at
org.apache.uima.aae.jmx.monitor.JmxMonitor.collectStats(JmxMonitor.java:421)
at org.apache.uima.aae.jmx.monitor.JmxMonitor.run(JmxMonitor.java:540)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.management.AttributeNotFoundException: No such attribute:
AvailableInstances
at
com.sun.jmx.mbeanserver.PerInterface.getAttribute(PerInterface.java:63)
at
com.sun.jmx.mbeanserver.MBeanSupport.getAttribute(MBeanSupport.java:216)
at
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:666)
at
com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:638)
at
javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1403)
at
javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
at
javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1264)
at
javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1359)
at
javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:600)
at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at
sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
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:878)
at
javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:263)
... 4 more
is logged and the CM is excluded from monitor output. This is broken since
we've put in support for multiple colocated Cas Multipliers. To support that
each CM is assigned a unique key to distinguish from other CMs. A UUID-like
string is added to a delegate key for the CM MBean name. Delegate keys are
*not* unique and it is possible to have more than one with the same key.
However, the monitor still uses the delegate key to fetch the CM MBean but such
MBean does not exist leading to the problem.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.