Tuesday, January 5, 2010

BI Publisher Logging & Debugging – Part 1

After you develop your BI Publisher reports next you want to do is to test your reports to see if they work appropriately, if they perform fast enough to meet the end user’s expectation, if they scale when more users access to the reports, etc.

And when you test your reports you need more information than what you see from the BI Publisher Server’s UI. This is where the BI Publisher’s logging and debugging feature comes in.

My team has been spending many times on troubleshooting and performance tuning to assist our clients to deliver the BI Publisher reports to their production and go live. And always first thing we do is to collect all the possible logging information and analyze what is happening at the reports generation time.

In order to do so, we first need to know what kind of logging feature is available with BI Publisher Server and how we can use it to help us perform the troubleshooting and performance tuning.

So, I’m going to cover this subject for the next few days.

What is Available?

  • Logging for Reports Generation
  • Server Level System Log

There are two types of BI Publisher logging frameworks. One is to log about its report generation process. Another is to log about its server (or system) level process related information including error, warning and exceptions.

Logging for Reports Generation

The report generation process log provides you information about how each report is generated including a data generation process and a report layout generation process. When BI Publisher generates a report output, first it retrieves a data from a specified data source. And then it applies a report layout to the data and converts it to a final report output. If your report’s layout template is RTF template, which is very common with BI Publisher reports development, then BI Publisher converts the RTF template to XSL-FO style sheet before it applies the style sheet to the data. Therefore when you want to debug or analyze the report generation process it is very important to separate each of the above mentioned layer so that you can narrow the point of the error or bottleneck of the issue and will be able to have better understanding of what is going on in side the report generation process. Anyway, you can find the following processes related information in the report generation process log.

  • SQL query submission process to retrieve a data
  • Conversion process from RTF template to XSL-FO File
  • Data merging process with XSL-FO
  • Conversion process from XSL-FO to final outputs such as PDF.

Each process shows the detail of the transactions and is tracked with time stamp in the log file. You can also find a total processing times for both data generation and report layout generation as summary.

Logging for Server

The system level log provides you an information about server level process such as scheduler, delivery, database connection, application server level integration, security etc.

I will talk about how you can enable the above logging capability and how you can use to address your problems tomorrow, so stay tuned!


  1. Hi Kanichiro,

    All of you are posts are really useful. We are converting actuate to BI publisher report and I have hard time here that in Siebel it is displaying date fields in 12 hr format and BIP it is displaying as 24 hr format. Is there a way to show data fields same as in Siebel.

  2. Yes, you can display it in anyway you want. However, there is a caveat, and I'll talk about it at the next post, so stay tuned!