Document ID: TEC597757
Last Modified Date: 8/23/2013
Hide Technical Document Details
- CA Application Performance Management
Description:This article will discuss the causes and how to address "[WARN] [IntroscopeAgent.WilyTransactionStructure]Transaction trace component limit of 5000 reached, recording of any new components will cease for this transaction."Solution: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 function. 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 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.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.#introscope.agent.transactiontrace.componentCountClamp=5000You can either disregard the warning, or increase the size of the clamp.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.
# 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.