You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@uima.apache.org by "Jerry Cwiklik (JIRA)" <de...@uima.apache.org> on 2010/06/06 19:56:54 UTC

[jira] Created: (UIMA-1807) UIMA AS jmx monitor throws javax.management.AttributeNotFoundException while collecting stats

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.


[jira] Updated: (UIMA-1807) UIMA AS jmx monitor throws javax.management.AttributeNotFoundException while collecting stats

Posted by "Marshall Schor (JIRA)" <de...@uima.apache.org>.
     [ https://issues.apache.org/jira/browse/UIMA-1807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marshall Schor updated UIMA-1807:
---------------------------------

    Fix Version/s: 2.3.1AS

> 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
>             Fix For: 2.3.1AS
>
>
> 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.


[jira] Closed: (UIMA-1807) UIMA AS jmx monitor throws javax.management.AttributeNotFoundException while collecting stats

Posted by "Jerry Cwiklik (JIRA)" <de...@uima.apache.org>.
     [ https://issues.apache.org/jira/browse/UIMA-1807?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jerry Cwiklik closed UIMA-1807.
-------------------------------

    Resolution: Fixed

Modified UIMA AS service to store CM's unique key in ServiceInfoMBean. This key is used by JMX Monitor to lookup CM Cas Pool MBean in JMX registry.   

> 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.