Sometimes understanding exactly what part of a particular workflow is contributing to slow response times can be challenging.  In the BI Platform landscape, there are many components and variables which contribute to the response times that end users are experiencing.  Thanks to the tight integration of SAP BI Platform 4.x and CA APM Introscope, we have a very useful and powerful tool that we can use to see under the hood and provide response times for very granular aspects of the reporting workflow.  This tool is the Transaction Tracer and is included in the set of monitoring and diagnostic tools that Introscope provides.  The Transaction Tracer is a feature of the Introscope Workstation that allows you to record transactions across the landscape and then filter these transactions based on SAP Passport which is generated by the SAP Client Plug-in.  After the trace is generated and filtered, the data can be quickly analyzed in great detail using the Workstation’s rich graphical user interface.

In this article, I will demonstrate how to generate and analyze an end to end trace using the Introscope Transaction Tracer and SAP Passport without the use of SAP Solution Manager.  In place of SAP Solution Manager, the SAP BI Platform Support Tool (a free utility for BI administrators) will provide the capabilities needed to generate the query which will be submitted to Introscope.  If you are interested in this topic but are instead using SAP Solution Manager (rather than CA APM Introscope in stand-alone mode), check out this wiki page for a tutorial.  If you do not have Introscope configured for BI Platform 4.x yet and are looking for instructions and a tutorial, refer to the following article A complete guide to setup CA APM Introscope 9 for monitoring SAP BI Platform 4.1 on Windows [PART 1/2]

Validate that metrics are being collected

The first step that should be done prior to generating the trace is to confirm that all the necessary metrics are being collected for the workflow you are tracing.  In this example, we will be tracing the time that it takes to refresh a Web Intelligence document against the E-fashion database.  We can use the provided BOE 4.0 Introscope dashboards to confirm that metrics are being collected for the agents that belong to the landscape that we want to trace.  If you plan to trace some other workflow and are not sure which BI components are involved, you can refer to the official BI 4.x product tutorials for guidance.  See below an example of the Webi Refresh workflow and the Introscope dashboards we need to check:

/wp-content/uploads/2014/04/introscope_dashboards_420912.png

  1. Launch the CA Introscope Workstation using the URL http://IEMHOST:8081/workstation and logon to the Introscope Enterprise Manager (where IEMHOST is your CA APM Introscope Enterprise Manager hostname and 8081 is the HTTP port)
  2. Click Workstation, new Workstation
  3. Click the LENS button and sort by host, then multi-select all the hosts that belong to the BI landscape where you are performing the E2E trace and click APPLY.  This will filter out all the un-necessary metrics and allow us to confirm that we are seeing metrics from the hosts involved in our workflow

    consoleLens.png

  4. Next, click the dashboards drop-down and select the BOE 4.0 WEBI WAS dashboard

    /wp-content/uploads/2014/04/dashboard_drop_434707.png

  5. Confirm that you are seeing metrics for the Webi Web Application dashboards

    /wp-content/uploads/2014/04/dashjh_434708.png

  6. Repeat steps 1-5 for each of the dashboards that are relevant to the workflow you are tracing.  If you are unsure of which dashboards should be checked, refer to the BI4 RCA guide for detailed descriptions of each dashboard.  Also, if you find that metrics are missing, refer back to the configuration guide and confirm that the Introscope Agents were configured correctly.  For support on this topic, open an incident under component BI-BIP-DEP.

    In this example, the dashboards to check include:

    – Apache Tomcat Dashboard

    – BOE 4.0 WEBI WAS
    – BOE 4.0 PLATFORM SDK

    – BOE 4.0 WEBI SERVER DETAIL
    – BOE 4.0 WEBI SERVER OVERVIEW

Execute the E2E Trace

The SAP Client Plug-in is used to launch the browser and send the necessary header variables which will instruct Introscope to automatically record the Transaction Trace on the Introscope Enterprise Manager.  The benefit of using the SAP Client Plug-in is that you do not need to manually start/stop the Transaction Trace tool inside Introscope Workstation which greatly simplifies the workflow.   Download the SAP Client Plug-in according to your browser version and close all browsers before continuing with this section.  Refer to the table below:

VERSION PLUG-IN DOWNLOAD SAP NOTE
Internet Explorer 8, 9, 10 SAPClientPlugin_1.26_x86.zip SAP NOTE 1435190
Internet Explorer 11 SAPClientPlugin.rar SAP NOTE 1608231

   

  1. First, on the client where you will be executing the trace, make sure that all browsers are closed (it’s also a good idea to check task manager and end task on all iexplore.exe processes)
  2. Browse to the location where you downloaded and extracted the SAP Client Plug-in and right click on plugin-starter-gui.exe and choose Run as administrator

    runAss.png

  3. Confirm that Application is set to Microsoft Internet Explorer and click Launch

    /wp-content/uploads/2014/04/sapplu_435444.png

  4. After Internet Explorer launches, return to the SAP Client Plug-in and give the Business Transaction Name property a meaningful name and change the Next Step TraceLevel property to Medium.  The Transaction Trace is programatically enabled on the Introscope Enterprise Manager when the SAP Passport is detected and the tracelog level is set to MEDIUM or HIGH)
  5. Next, queue up your browser to the place in the application where you want to begin tracing.  In this simple example, we will trace a Web Intelligence refresh.  When you are ready to begin the Transaction Trace, click the Start Transaction button on the SAP Client Plug-in then proceed with your workflow.  Confirm the trace is working by checking the Sent Bytes / Recieved Bytes.  When the trace is completed both should have values other than 0.

    /wp-content/uploads/2014/04/exx_435445.png

  6. When you have completed your workflow, click the Stop Transaction button then click ok on message “Please upload BusinessTransaction.xml manually”

Decode the SAP Passport with the BI Platform Support Tool

The key to fetching the E2E traces from Introscope Transaction Tracer is to decode the SAP Passport and query the Introscope Enterprise Manager for the historical trace records.  To decode the SAP Passport from the BusinessTransaction.xml, you must use the new SAP Passport Decoder tool which is included in the SAP BI Platform Support Tool version 1.1.5 or higher.  Download the tool from this wiki page

  1. Launch the SAP BI Platform Support Tool (v 1.1.5 or higher)
  2. From the menu, click Tools, then click SAP Passport Decoder

    /wp-content/uploads/2014/04/w11_435453.png

  3. Next click Browse, then browse to the location where your BusinessTransaction.xml is stored (this can be found in the /log/transactionName folder on the client where you extracted and ran the SAP Client Plug-in from).  For example, C:\sapclientplugin\log\20140417_090959_Refresh Webi Document
  4. Notice that all of the information required to view the Transaction Trace has been extracted and decoded for you from the uploaded BusinessTransaction.xml

    passportDecoderr.png

Query the E2E workflow in Introscope Transaction Tracer

Now that you have decoded the SAP Passport, you can now query for the Transaction Traces inside the Introscope Workstation

  1. Launch the Introscope Workstation
  2. Click on Workstation then Query Historical Events

    /wp-content/uploads/2014/04/qhe_435487.png

  3. Next, click the drop-down box next to Time range and select Custom Range then set the time range according to the start and stop time in the SAP Passport Decoder tool then click ok.  Make sure you specify a few minutes before and after the specified start/stop time to ensure you query for all the transactions that were part of your E2E workflow.

    /wp-content/uploads/2014/04/times_435516.png

  4. Finally, copy the Introscope query from the SAP Passport Decoder tool into the Events Query box inside the Historical Query Viewer and click the GO button to execute the query

    copyPaste.png

  5. The E2E Transaction Trace results are shown only for the workflow that you recorded using the SAP Client Plug-in

Analyze the E2E workflow in Introscope Transaction Tracer

  1. To begin the E2E analysis, first click the Timestamp column and make sure that the timestamps are sorted in ascending order then press CTRL-A or multi-select all of the transaction events in the Historical Query Viewer

    /wp-content/uploads/2014/04/e_435552.png

  2. To view the most expensive methods and transactions for this recorded workflow, click the Summary View tab, then click the Call time (ms) column to sort descending.  In this example, the processDPCommandsEx( ) method took the most processing time (2 calls at 1.7 seconds each)

    /wp-content/uploads/2014/04/b_435534.png

  3. To analyze the E2E workflow in a heirachical callstack format to understand where a bottleneck might be, click the Tree View tab.  Notice, in this view we can drill-down into the processDPCommandsEx( ) method to see which methods called by processDPCommandsEx( ) actually consumed the most time

    /wp-content/uploads/2014/04/c_435535.png

  4. To view the E2E trace in a timeline format, click the Trace View tab.  Notice, clicking on specifc methods reveals parameters passed into the method

    /wp-content/uploads/2014/04/d_435551.png

To report this post you need to login first.

19 Comments

You must be Logged on to comment or reply to a post.

  1. Alexej Petrow

    Hi Toby,

    I get an error message when I try to load the XML file.

    2015-05-26 15_32_43-Error.jpg

    What could it be, I have kept strictly to the instructions?

    regards

    Alex

    (0) 
    1. Toby Johnston Post author

      Hi Alex,

      It sounds like the SAP Client Plugin didn’t create the BusinessTransaction.xml correctly.  Is it a 0kb file?  Maybe you could try another test generating the xml again using a simple browser workflow?

      Thanks

      Toby

      (0) 
      1. Alexej Petrow

        Hi,


        i think the file is written properly, in my case is the file 80kb. I also see the SAP Passport and X-CorrelationID. Upload the file works in the SolMan without problems, but not with the BI tool.


        Thanks


        Alex

        (0) 
            1. Toby Johnston Post author

              Your XML was missing a transaction stop time.

              I went ahead and generated the data for you and pasted below.  I will add some exception handling for missing properties in the newest version of the BI tool (version 2.0)

              Passport:

              2A54482A03010D890A5341505F4532455F54415F506C7567496E20202020202020202020202020202000005341505F4532455F54415F5573657220202020202020202020202020202020205341505F4532455F54415F526571756573742020202020202020202020202020202020202020202000055341505F4532455F54415F506C7567496E20202020202020202020202020202041344442333032333144433331454435383046354146314338343532463043332020200007A4DB30231DC31ED580F5AF1C8452D0C30000000000000000000000000000000000000000000100E22A54482A0100270100020003000200010400085800020002040008300002000302000B000000002A54482A

              Transaction ID:

              A4DB30231DC31ED580F5AF1C8452D0C3


              Introscope Filter:

              2A54482A*4134444233303233314443333145443538304635414631433834353246304333*2A54482A and type:normal

              (0) 
              1. Alexej Petrow

                cool, thanks. It works.

                But introscope found only two traces, is there a possibility in the query filter, to put down the minimum transaction duration, so the introscope can select more traces? Like you can do it in “New Transaction Trace Session”. 5000 is the default setting. About 5ms will be better.

                2015-05-27 13_50_13-Automatische Wiedergabe.jpg

                regards

                Alex

                (0) 
  2. Priya K

    Hi Toby,

    Thanks for your post on the guide to setup introscope 9 for monitoring SAP BI 4.1.

    I have completed the configuration and also am able to see the data in the dashboards. I have tried the following the steps in this post for analyzing E2E logs but all the time I see only one trace in the transaction tracer whereas when I create a new transaction trace session and repeat the workflow, I can see other traces. Would you be able to help me understand as to why the traces are not being shown when using the introscope query from the Business Transaction.xml?

    Thanks & Regards

    Priya K

    (0) 
    1. Toby Johnston Post author

      Hi Priya,

      The query results you get in the Transaction Tracer depends on your workflow.  With the BI Platform Support Tool’s Passport Decoder, it is only possible to trace single step transactions.  This means that the query will only return the traces from one step of a workflow (for example, a logon or a report view). 

      If you have a more complex workflow you need to click Next Step between each click of the workflow.  The SAP Client Plug-in will generate a multi-step BusinessTransaction.xml.  In order to filter on a multi-step transaction you need SAP Solution Manager E2E Trace Diagnostics tool. 

      Can you confirm, what is the workflow you are trying to record?

      Thanks

      Toby

      (0) 
      1. Priya K

        Hi Toby,

        Thank you for your response and the clarification. Now am trying to trace only a single step – Refresh of a webi report. As in the below screenshot , I see only one trace from Tomcat Agent.test1.PNG

        Thanks

        Priya

        (0) 
        1. Toby Johnston Post author

          Hi Priya,

          If you check in Introscope under the BI 4.0 WEBI SERVER DASHBOARD, are you seeing data there for all Webi nodes? 

          Regards
          Toby

          (0) 
  3. Vishal Bagherwal

    Thanks Toby, is there is document is decode function calls like “processDPcommands”, “getpages”, getmaps”, “initinstance” etc.

    Would be helpful to read traces.

    (0) 
    1. Toby Johnston Post author

      Hi Vishal

      Try this wiki:

      Approaches to Error WIS 30270 troubleshooting – Business Intelligence (BusinessObjects) – SCN Wiki

      API Name

      Process

      BI4.x

      XI3.x

      answerPromptsEx

      answerPrompts

      answers to prompts to resume an interrupted refresh.

      createDocument

      creates a document

      executeDrillAction

      executes the drill request

      getBlob

      fetches binaries (such as images) and outputs (xls, pdf, ..) either from the session folder or from the cache

      getBlobChunk

      getDrillBar

      returns the filter bar definition

      getDocumentInfoMDP

      getDocumentInfos

      gets information on the document such as the properties of the document or the report specification

      getMap

      returns the list of reports in the document

      getPages

      generates outputs for clients or for export (pdf, xls…)

      getPromptList

      returns the list of prompts.

      getSessionInfosEx

      retrieves information related to the data sources.

      initInstance

      creates the Webi session and logs in the user the very first time it opens a session with the server

      openDocumentMDP/ openDocumentsMDP

      opens the document from cache if available or from the repository

      processCustomSort

      defines a custom sort on some objects.

      processDPCommandsEx

      processDPCommands

      commands on Data Providers to add a data source, refresh, …

      processVariable

      adds, changes or deletes variables in the document.

      retrieveListOfValuesEx

      retrieveListOfValues

      returns the list of values for prompts

      saveDocumentToCorporateMDP

      saves the document in the repository

      setDocumentProperties

      changes the document properties such as “refresh on open”

      updateRS

      submitReport

      Modifies the report (change tables, section, turn to chart, …)

      (0) 
  4. Nitesh Ramancha

    Toby, Really great work!!

    I am looking into similar tracing but for Design studio dashboards and Lumira, do you have any idea if the metrics for DS and Lumira are out in the market? Presently i am on WILY 10.1 and see no metrics enabled in the dashboards.

     

    (0) 

Leave a Reply