Cross Component Trace (XCT) annotates the logs so that log entries that are related to a request that is serviced by more than one thread, process, or even server are identified as belonging to the same unit of work.
XCT helps identify the root cause of problems across components, which provides the following benefits:
Enables administrators and support teams to follow the flow of a request from end-to-end. XCT follows as a request traverses thread or process boundaries, travels between stack products, and the WebSphere Application Server.
Helps to resolve questions about which component is responsible for a request that fails.
Administration of XCT
XCT is a function built into the WebSphere Application Server log and trace framework. When enabled, XCT annotates the logs so that log entries that are related to a request that is serviced by more than one thread, process, or even server are identified as belonging to the same unit of work. Applications built using distributed architectures, such as Service Oriented Architecture, will benefit from XCT. XCT helps facilitate problem determination across multiple services on different systems.
The following list identifies the different XCT modes:
With XCT request IDs added to existing log and trace records.
With XCT request IDs added to existing log and trace records and XCT log records added to log files.
With XCT request IDs added to existing log and trace records, XCT log records added to log files, and data snapshots captured.
The following list identifies the various XCT request IDs:
XCT request IDs are identifiers added to log and trace records. These records are produced by the server when the server is configured to use High Performance Extensible Logging (HPEL).
XCT adds the same request ID to every log or trace record as long as the log or trace record is a part of the same request. The request ID is added regardless of which thread or Java virtual machine (JVM) produces the log or trace entry.
When XCT is used with the HPEL log and trace infrastructure, you can view request IDs
logViewer.sh tool when logs are output in advanced format.
Example below shows a log record with an XCT request ID in the log file (shown rendered in advanced format):
[3/18/11 14:50:17:391 EDT] 00000018 W UOW= source=com.ibm.somelogger.QuickLogTest org= prod= component= thread=[WebContainer : 1] requestID=BJrcVPo+Yk4-AAAAAAA8zAA hello world
Note that the request ID is shown previously on a separate line, but in the log files it is actually on the same line as the rest of the log record header.
The following list identifies qualities about the XCT log records:
XCT log records are typically added to the logs to:
Demarcate the beginning and ending of work for a particular request on a particular thread.
Demarcate when work is about to be transferred to another thread or process, or to indicate when work returned from another thread or process.
Demarcate when work moves from major component to major component, even if work continues on the same thread. For example, to show transfer of control from application server code to application code.
Example of a XCT log record in the log file:
[3/18/11 14:50:17:391 EDT] 00000031 XCT I BEGIN BJrcVPo+Yk4-AAAAAAA8zAA 00000000000-cccccccccc2 HTTPCF(OutboundRequest /index.html RemoteAddress(127.0.0.1) RequestContext(36001645))
XCT log records are composed of:
XCT type (
XCT parent correlator ID (for example,
XCT current correlator ID (for example,
XCT annotations (for example,
The following list identifies XCT tools:
logViewer.sh tool is able to filter log and trace records by request ID.
Tools, such as the XCT Log Viewer, can also take advantage of XCT log records or XCT request IDs, or both, when rendering log and trace content. The XCT Log Viewer is available as a tool add-on for the IBM Support Assistant.