Using Tracing APIs in Standalone SUPSupportability Library

You can perform end to end tracing using standalone SUPSupportability library.

SUPSupportability library provides two functionalities:
  • generation of SAP Passport and Correlation ID for HTTP request and response messages.
  • handling the generation of structured E2E Business Transaction XML .
The basic structure of the data is organized into:
  • SUPE2ETraceTransaction - serves for the single client side trace
  • SUPE2ETraceStep - denotes single user interaction roundtrip on the client side
  • SUPE2ETraceRequest - denotes single interaction within an SUPE2ETraceStep resulting in an external interaction with backend server
To use the SUPSupportability library, import SUPE2ETraceController.h in the header file.

Usage

Follow the instructions to enable end to end tracing using the standalone SUPSupportability library. Once you have the traces loaded into a Business Transaction XML, you can upload to SAP Solution Manager.
  1. Once tracing is enabled, create an instance of SAP Passport.
    SAP_ExtendedPassport* passport = [SAP_ExtendedPassport createPassport];
  2. Create an instance of TraceController and TraceTransaction.
    SUPE2ETraceController* traceController = [SUPE2ETraceController sharedController];
    SUPE2ETraceTransaction* traceTransaction = [traceController createTrasaction];
  3. Initialize TraceStep and TraceRequest objects before forwarding any new requests.
    SUPE2ETraceStep * traceStep = [traceController createStep];
    SUPE2ETraceRequest * traceRequest = [traceController createRequest];
  4. Set the tracing level.
    [traceController setTraceLevel:1];
    You can set any of the following trace levels.
    Trace Level Description
    0 Specific to trace analysis on the client. No traces are triggered on the server.
    1 Corresponds to response time- distribution analysis. This helps to analyse the time taken on each server component.
    2 Corresponds to performance analysis. Performance traces are triggered on the server side. Example: Introscope Transaction Trace, ABAP Trace, SQL Traces and so on.
    3 Corresponds to functional analysis.
  5. Add the SAP Passport and Correlation ID in the HTTP request header and send it.
    [m_HTTPRequest addRequestHeader:@“SAP-PASSPORT“ value:[theRequest PassportHttpHeader]];
    [m_HTTPRequest addRequestHeader:@“X-CorrelationID“ value:[theRequest CorrelationIdHttpHeader]];
     [theRequest markSending]
  6. Record all updates made to requests in the Business Transaction XML.
    [traceController updateRequestElementsInRequest:traceRequest withDictionary:Dictionary];
  7. Mark the data after receiving the first and last bit of data.
    [theRequest markReceiving]
    [theRequest markReceived]
  8. Update the request with HTTP response header information. End the trace request and step objects.
    [traceStep endStep];
    [traceRequest endRequest];
  9. Generate the Business Transaction XML and upload it to the server.
    [traceController getXML];
    [traceController sendXML:<SAP Solution Manager>]