If you have ever worked on an SAP support message you have without a doubt had to collect BusinessObjects trace logs. Often you are faced with several challenges and requirements during this process including:
- You must go into the Central Management Console and manually enable tracing
- You need to know exactly which components are involved in the workflow you are tracing
- Traces are huge and contain far more information than is really needed
- Merging the traces from various components into an ordered and sequenced list is very time consuming
- Filtering the traces based on thread id, user id, etc then identifying a particular workflow can be downright difficult
Wouldn't it be great if you could have just one log file that contains only the trace entries related to an end user workflow? Wouldn't it be nice if this one log file contained traces from all of the involved servers and web applications in sequential order? Better yet, what if this could be accomplished without even manually turning on tracing for all of these components? I know this seems like wishful thinking but with SAP BusinessObjects Business Intelligence Platform 4.x this is now all possible. The secret sauce that makes this all possible is a new feature implemented in BI 4.x called SAP Passport.
The SAP Passport is a unique identifier that is generated by a small client application named the SAP Client Plug-In. Using the SAP Client Plug-in you launch Internet Explorer and during subsequent transactions, the SAP Passport identifier (technically known as the correlation id) is injected into the HTTP header of each request. The SAP Passport id is then forwarded by the application server to all servers involved in the user's workflow. Inside of the SAP Client Plug-in you have the ability to override the default trace level meaning you do not need to manually enable tracing on your BI servers/web applications. The trace override is passed to each individual server and instructs the server to trace at the specified level for this user's workflow. Each trace entry created by the server for the user's workflow can now be identified by the SAP Passport id thereby enabling a true end to end trace across the BI landscape.
The SAP Client Plug-in is only part of the end to end tracing equation. The second half of the equation is to bring all of these traces into one continuous view based on the user's SAP Passport id. There are several different programs on the internet that could allow you to do this, however we have a new log file reader specifically designed to consume and parse BI 4.x GLF files. This handy little Java application is aptly named the GLF Viewer and gives you the ability to select multiple GLF files (or a folder), parse these files for a particular string (in this case the SAP Passport id), and build a new log file containing only the information that you want to analyze.
Without further adue, let's get into the gnitty gritty of how to generate an end to end trace in your BI 4.x landscape.
Note: Updated customer instructions for generating BI Platform E2E trace can be found here
Generate the E2E Trace
2. Copy the SAP Client Plug-in archive to the client where you will be executing the workflow and unzip the files into an empty folder.
3. Close any open browsers then start the SAP Client Plug-in by executing the file plugin-starter-gui.exe.
4. Set the "Application" option to Microsoft Internet Explorer and click Launch.
5. Internet Explorer (32-bit) will launch and now you must define a few properties before you begin executing your workflow. Under the "Business Transaction Name" property choose a name that describes the workflow that you are capturing and set the "Next Step TraceLevel" to High. The "Next Step TraceLevel" setting overrides the current trace level for each component involved in the user workflow.
6. Before you start your end to end trace, you should first queue up the browser to the beginning of the problematic workflow that you wish to trace. In this example, we'll be tracing a view on-demand request for a Web Intelligence document based on a SQL Server data source (UNX).
7. When you are ready to begin your workflow, click the "Start Transaction" button.
8. After you have completed your workflow press the "Stop Transaction" button. You can ignore the message "Settings are not valid" as it relates to the SMD Agent settings for Solution Manager. Click OK to close the SAP Client Plug-in window.
Consume the E2E Trace
1. In the same directory where you executed the SAP Client Plug-in, browse to the /log directory. Inside of the log directory will be a folder that is named after the value you specified as "Business Transaction Name". Browse to the folder that was generated from your tracing session.
2. Open the file BusinessTransaction.xml using IE or notepad and search for the string “BusinessTransaction id=”. Locate the id associated with the BusinessTransaction as this is the unique identifier associated with your E2E trace.
3. Since the location of the BILaunchpad or OpenDocument traces is not in the same location as the default logging, you should copy these traces to the default logging directory. On your application server host, browse to the C:\ drive (or $HOME for Unix) and according to the modified date timestamp, locate the newest folder named SBOPWebapp_BIlaunchpad_*. Browse into this folder and copy *.glf to the default logging location (for example: C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\logging).
If you have a multi-node landscape, you should copy *.glf from each application server and each BI 4.x node to a centralized folder location. (note that you may need to set trace level to none or stop the SIA in order to copy the logs from the /logging folder)
4. Download the GLF Viewer from here (requires an S-USER logon) This GLF Viewer is from a BI 4.1 build and contains the functionality needed to complete the log parsing. Older GLF Viewers may not work as shown in this article.
5. Start the GLF Viewer by executing the file runGLFViewer.bat.
6. Inside the GLF Viewer, click File, Open. Choose Add Files (the Add Folder option will crash the GLFViewer at the time of this writing) and add all *.glf files from the /logging folder (or from your central log folder) that were generated with today’s date.
7. Next, confirm that the option “Should merge all into a single tab” is checked. This option is required to create the end to end view of our traced workflow.
8. Check the option to “Filter and only read matching entries:” then under the Column option select the field named “DSRRootContextID”, the operator should be “contains”, and in the text box below paste in the BusinessTransaction id that you found previously in step 2, then click OK.
9. You are now viewing a continuous end to end trace generated by components in the BI landscape. These logs have been filtered to show only the transactions generated for your user’s workflow. Additionally, the trace entries are shown in sequential order as they occur during the workflow. Analyze the DeviceName column to determine the component that generated each transaction.
10. Save your E2E trace as one trace file by clicking File then Export current (filtered) view.