私はキャメル2.9.0にいます。JConsoleで実行中のプロセスのMBeanデータ(ルート、プロセッサなど)を表示できます。
ユーザーインターフェイスに同じものを表示する必要があります。属性値をフェッチしようとすると、次のエラーが発生します。
注-属性「EndpointUri」は正しい値をフェッチしています。
問題は「FirstExchangeCompletionTime」にあります。したがって、サーバー接続を回転させることで問題が発生する可能性はないと結論付けています。Camel.1.6.4にいたとき、属性「FirstExchangeCompletedTimestamp」の同じコード行が正常に機能していました。Camel 1.6.4以降に設定されたJMXに変更はありましたか?
JMXセットアップには次のプロパティを使用しています。
-Dorg.apache.camel.jmx.disabled=false
-Dorg.apache.camel.jmx.rmiConnector.registryPort=2001
エラー:
javax.management.AttributeNotFoundException: getAttribute failed: ModelMBeanAttributeInfo not found for FirstExchangeCompletionTime
> at javax.management.modelmbean.RequiredModelMBean.getAttribute(RequiredModelMBean.java:1326)
> 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:1404)
> at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)
> at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)
> at java.security.AccessController.doPrivileged(Native Method)
> at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1367)
> at javax.management.remote.rmi.RMIConnectionImpl.getAttribute(RMIConnectionImpl.java:600)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 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:662)
> 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)
MBeanServerConnection::getAttribute("X")
メソッドを介して値をフェッチしています。これらの属性が。を介して取得されるCamelソースコードを調べまし org.apache.camel.management.mbean.Statistic
た。
私は試しました(非静的な方法)-
MBeanServerConnection::getAttribute(qName, "org.apache.camel.firstExchangeCompletedTimestamp")
MBeanServerConnection::getAttribute(qName, "firstExchangeCompletedTimestamp")
しかし、どれも機能していないようです。助けてください。