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



Reply via email to