Introduction
Transaction Discovery (autogen) is a popular means to collect recordings of transaction URLs and transforming them into Business Transaction/Transaction definitions. However, due to configuration setup and other reasons, customers may get one of a series of error messages. This document provides a list of Transaction Discovery error messages, their related causes, and workarounds/fixes.
Background:
A recent case had a customer unable to record using transaction discovery. Enabling Autogen/Trace provided an error message. The customer wanted more details on what to do next. Rather than make this into a “Case KD”, it was expanded to “A Best Practices KD” to include a more complete list of error messages.
Environment:
All 9.x/10.x releases supporting transaction discovery. The customer case was running 9.7.
Instructions:
Important Note: Some of these messages appear only after changing/enabling the TIM trace setting --Autogen/Trace. Making this change does not require a TIM restart.
Glossary
Autogen definition
| The overall transaction discovery definition including templates. |
Base definition | The main transaction discovery definition. |
Component | Typically an HTTP request and response. Although it may be possible to have a HTTP request with no response within a certain time period. |
Extended definition | The business transaction that is already enabled. |
Identifying Component | Usually the first component in the transaction. |
Subcomponent | The subcomponent is a secondary component that you want to be associated through the main component and the Referer header. |
Errors
Errors fall into these categories:
- Component cannot be considered a subcomponent
- Not adding component
Because these error messages are almost nearly identical and lengthy, shortened names were provided to help.
Short name | Error Message | Likely Cause | Next Steps |
Subcomponent has no Referer header. | component # number: cannot be considered a new subcomponent because it has no "Referer:" header | The Referer header is not present or does not match the URL of an existing definition. | Review if Referer header is present or not matching the URL of an existing definition. |
Subcomponent really a main component. | component # number: cannot be considered a new subcomponent because it meets the criteria for a main component | Subcomponent has content type of text/html, text/xml, or text/plain. The response content type does not match the content type filter of the template that matched the main component.
| Change the template to the correct content type.
|
Referer header cannot be parsed for subcomponent. | component # number: cannot be considered a new subcomponent because its "Referer:" header cannot be parsed: string | The Referer header is corrupted. Note that the query parameters are bypassed so they are not the issue. | Check for strange characters, truncated header and other reasons not following the format presented in http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z14 |
Referer header cannot be parsed for autogen component. | component #number:cannot be considered an autogen subcomponent because its "Referer:" header cannot be parsed: string | The Referer header is corrupted. Note that the query parameters are bypassed so they are not the issue. | Check for strange characters, truncated header and other reasons not following the format presented in http://www.w3.org/Protocols/HTTP/HTRQ_Headers.html#z14 |
No Transaction Discovery definitions. | component # number: cannot be considered an autogen subcomponent because there are no autogen definitions | There are no transaction discovery definitions. | Create one or more transaction definition. |
Not matching any autogen definition | component # number: cannot be considered an autogen subcomponent because it does not match any autogen definition | The subcomponent does not match an existing transaction discovery definition. | Review transaction discovery definitions. |
Autogen subcomponent has no referrer header. | component # number: cannot be considered an autogen subcomponent because it has no "Referer:” header | The Referer header is not present or does not match the URL of an existing definition. | Review if Referer header is present or not matching the URL of an existing definition. |
No configured parameters found. | component # number: not creating an autogen definition because no configured parameters were found | A transaction discovery definition was created but associated parameters exist. | Create Transaction discovery parameters. |
Matched based definition | component # number: not creating an autogen definition because matched base definition string. | A transaction discovery definition matches an existing enabled business definition | Remove or disable the existing definition and then add the new one. Or abandon adding the new one. |
Matched extended definition | component # number: not creating an autogen definition because matched extended definition string. | A transaction discovery definition matches an existing enabled business definition. | Remove or disable the existing definition and then add the new one. Or abandon adding the new one. |
Not matching referer header. | not adding component number as a subcomponent of autogen definition with main component number because the Referer: header does not match. | The referer header of the subcomponent does not match the main component. | Compare URL from main component and subcomponent Referer header. |
Duplicate component number | not adding component #number as a subcomponent of autogen definition with main component #number because it is a duplicate of component #number
| Trying to include a subcomponent to a transaction discovery definition that already is included. | Verify in the TIM logs what the new subcomponent information at the time of the error and see if it is a duplicate of an existing transaction subcomponent that is already in the Transaction Discovery definition. |
Session id not matching | not adding component #number as a subcomponent of autogen definition with main component #number because the session id does not match | The subcomponent’s session id is different from the main component. | Make the main component and subcomponent session id the same. |
Client IP not matching | not adding component #number as a subcomponent of autogen definition with main component #number because the client IP address does not match | The subcomponent’s client IP is different from the main component. | Make the main component and subcomponent client IP the same. |
Response content type matches template filter | not adding component #number as a subcomponent of autogen definition with main component #number because the response content type matches the template's filter | The subcomponent’s response content-type matches the main component. | Make the main component and subcomponent content-type different. |
Additional Information:
https://docops.ca.com/ca-apm/10-2/en/extending/transaction-definition/automatically-discovering-transactions/troubleshooting-automatic-transaction-discovery -- Troubleshooting Transaction Discovery
https://en.wikipedia.org/wiki/HTTP_referer - Referer header