Update from Dynatrace:
The agent may produce this exception if JMX of the application is not fully
started.
You may try increasing the default delay with the agent option:
optionDelayJvmMetricsJava=30
Above value (30) means a delay of 5 min.
You can set the Agent Options in debug mode (Ctrl+Shift+F9), going to the involved
Agent Group, then Agent Mapping > Debug... > tab *Agent Options*
To be effective it requires an application restart.
- Martin
On 03.09.2020 21:26, Martin Lichtin wrote:
It looks like Dynatrace has an issue during instrumentation. There's this stack
trace in their log file:
Exception caught in
com.dynatrace.diagnostics.agent.introspection.jmx.JMXPlatformManager.registerMBeanServer:
java.lang.NullPointerException: null
at Proxycdfee5da_9424_4606_87c9_f54d44f871c8.hashCode(Unknown Source)
at com.dynatrace.diagnostics.agent.introspection.jmx.n.<init>(Unknown Source)
at com.dynatrace.diagnostics.agent.introspection.jmx.w.b(Unknown Source)
at com.dynatrace.diagnostics.agent.introspection.jmx.w.a(Unknown Source)
at
com.dynatrace.diagnostics.agent.introspection.jmx.JMXIntrospection.a(Unknown
Source)
at
com.dynatrace.diagnostics.agent.introspection.jmx.JMXIntrospection.registerMBeanServer(Unknown
Source)
at Proxycdfee5da_9424_4606_87c9_f54d44f871c8.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at
org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator.getProxyInstance(InterfaceProxyGenerator.java:102)
at
org.apache.aries.proxy.impl.AsmProxyManager.createNewProxy(AsmProxyManager.java:80)
at
org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingInterceptingProxy(AbstractProxyManager.java:77)
at
org.apache.aries.proxy.impl.AbstractProxyManager.createDelegatingProxy(AbstractProxyManager.java:42)
at
org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe.createProxy(AbstractServiceReferenceRecipe.java:332)
at
org.apache.aries.blueprint.container.ReferenceRecipe.internalCreate(ReferenceRecipe.java:107)
at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)
at org.apache.aries.blueprint.di.RefRecipe.internalCreate(RefRecipe.java:62)
at
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:106)
at
org.apache.aries.blueprint.container.BeanRecipe.setProperty(BeanRecipe.java:955)
at
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:929)
at
org.apache.aries.blueprint.container.BeanRecipe.setProperties(BeanRecipe.java:910)
at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:844)
at
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811)
at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)
at
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:255)
at
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:186)
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:704)
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:410)
at
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:275)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)
at
org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
On 02.09.2020 15:49, Jean-Baptiste Onofre wrote:
Hi Martin
javax.management.MBeanServer service is exposed by Karaf Management bundle.
I just checked in 4.2.9, and I can see the service available:
objectClass = [javax.management.MBeanServer]
service.bundleid = 30
service.id = 83
service.scope = singleton
Does it mean that the service is not available anymore when you add the
dynatrace agent ?
Maybe the dynatrace agent creates its own MBeanServer, overriding the Karaf one
?
Can you check with the service:list command if you see the MBeanServer service
available (or bundle:server with karaf.management bundle id) ?
Regards
JB
Le 2 sept. 2020 à 15:31, Martin Lichtin <[email protected]> a écrit :
Having an issue with a Karaf deployment that is supervised by Dynatrace.
After upgrading from Karaf 14.1.7 to 4.2.9, the JMX bean server reference (in
blueprint)
<reference id="mbeanServer" interface="javax.management.MBeanServer" />
is no longer available. Seeing "unresolved dependencies
[(objectClass=javax.management.MBeanServer)]" at startup.
Would anyone have any experience with Dynatrace Agent having such an effect?
Once we remove loading the agent at startup, this issue disappears.
- Martin