UIMA
  1. UIMA
  2. UIMA-1807

UIMA AS jmx monitor throws javax.management.AttributeNotFoundException while collecting stats

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 2.3AS
    • Fix Version/s: 2.3.1AS
    • Component/s: Async Scaleout
    • Labels:
      None

      Description

      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.

        Activity

        Hide
        Jerry Cwiklik added a comment -

        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.

        Show
        Jerry Cwiklik added a comment - 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.

          People

          • Assignee:
            Jerry Cwiklik
            Reporter:
            Jerry Cwiklik
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development