Messaging transaction discovery issue

From version 1.36 onwards, the javax.jms.MessageListener activation is introduced. If messaging transactions do not meet certain criteria, no results are obtained at all. While I understand the importance of maximizing agent optimization, it is highly problematic to receive no output. In my case, I am using a packaged software solution, which means I don't have access to the source code and I'm unsure about what to include in javax.jms.MessageListener. I believe it would be opportune to add a javax.jms.enabled option to indicate whether this feature should be utilized or not. Otherwise, we are obliged to remain on version 1.35 and live with an obsolete version. It is crucial in research and development to consider legacy applications and not solely focus on microservices and digital factory contexts.

I agree that there should be an option to disable the MessageListener instrumentation optimization completely. We'll most likely make the jms_listener_packages wildcard-capable, meaning that as soon as this enhancement is released you could just pass "*" as value in order to make the agent look in all packages.

In the meantime I can provide you the following workaround to discover all packages of your application containing MessageListeners:

  • Run your application with the APM agent version 1.35.0 with debug logging enabled
  • Filter the debug logs on lines containing Type match for instrumentation JmsMessageListenerInstrumentation: Those lines will tell you the names of the MessageListener implementations of your application
  • Configure the jms_listener_packages so that all of your MessageListeners are matched

EDIT: Link to GH issue

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.