ALERT: Some images may not load properly within the Knowledge Base Article. If you see a broken image, please right-click and select 'Open image in a new tab'. We apologize for this inconvenience.

Explaining and Addressing an Agent Reaching Transaction Trace Component Limit


Article ID: 5412


Updated On:


CA Application Performance Management Agent (APM / Wily / Introscope) INTROSCOPE


    The following warning message is appearing in my agent log: "[WARN] [IntroscopeAgent.WilyTransactionStructure]Transaction trace component limit of 5000 reached, recording of any new components will cease for this transaction."


     The warning message, "Transaction trace component limit of 5000 reached, recording of any new components will cease for this transaction", is harmless to agent and application operations. This indicates that the agent transaction trace function has found more than 5000 components within a transaction and will not record any new transaction traces until the clamp is addressed.

The components in the transaction are the units that compose the transaction; like servlets, struts actions, EJB accesses, and DB accesses, etc. These are specified by blame point tracers. Your transaction is initiated when the first blame point component is invoked and finishes when the component exits. When you hit the transaction trace clamp, it generally means that your application is highly nested, containing several components (many EJB's JSP's, struts, etc.) communicating with one another. We add these components to our blame stack and this clamp is a preventative measure to ensure the application does not run out of memory /buffer while running.


APM 10.x


The transaction component clamp is specified in the IntroscopeAgent.profile as "introscope.agent.transactiontrace.componentCountClamp".

From the IntroscopeAgent.profile:

# Uncomment the following property to specify the maximum number of components allowed in a #Transaction Trace. By default, the clamp is set at 5000. Note that any Transaction Trace exceeding the #clamp will be discarded at the agent, and a warning message will be logged in the Agent log file. #Warning: If this clamp size is increased, the requirement on the memory will be higher and as such, the #max heap size for the JVM may need to be adjusted accordingly, or else the managed application may #run out of memory. Changes to this property take effect immediately and do not require the managed #application to be restarted.


You can either disregard the warning, or increase the size of the clamp. Please keep in mind that the possibility of running out of memory is dependent, not only on the number of components, but also the number of concurrent transactions. Thus, it cannot be easily predicted how many components must exist within the trace before running out of heap. The default of 5000 should not cause an issue; however test this property extensively before increasing it.

Alternatively, you can disable the agent's automatic transaction tracing function so that only manual traces are performed. These properties are also located in the IntroscopeAgent.profile.

To do this:

set introscope.agent.transactiontracer.sampling.enabled=false

set introscope.agent.transactiontracer.sampling.perinterval.count=0
From the IntroscopeAgent.profile:

# Uncomment the following property to disable Transaction Tracer Sampling. Changes to this property #take effect immediately and do not require the managed application to be restarted.


TT Sampling

# These are normally configured in the EM. Configuring in the Agent disables configuring them in the #EM. You must restart the managed application before changes to this property take effect.


Additional Information

     As always, contact CA Support if you have further questions.