The Season for Logs; Yule and otherwise – Part 2
I’ll admit it openly to the SCN community. I’m a geek. On Christmas Morning,
instead of making a real fire in my real wood-burning fireplace, I will instead
search around and find one of many channels on the television that show hours
of footage of the Yule Log and accompanying beautiful Christmas music. It’s so
much easier to apply technology to solve the problem than to build an actual
fire. And my fireplace doesn’t play music. But I digress.
other type of logs that I want to give some holiday cheer to are
BusinessObjects Enterprise trace logs. They may make many shudder and cringe,
but I learned a few things about these logs recently and think the community
could definitely benefit.
use Trace Logs?
will apologize up front if you use other reporting tools, but I presently work
for a Webi only shop, so focus of this will be on WebIntelligence. The
information holds for other tools/services, but individual results may vary.
a BusinessObjects Administrator, I often get asked why reports are “so
slow”. It takes some effort to describe the internal processes of BOE to
developers, managers, and other lay people. How the report request moves from
the web browser, to the BOE server, how it is processed, and how long each step
takes. I won’t cover this in detail here, but know that this information is a
part of what used to be called the BusinessObjects Certified Professional
certification, and is now called SAP Certified Application Associate for
BOE. At a high level, here is what
- User logs in to InfoView and clicks on a report
- If there are prompts, the
prompt window is returned with it’s List of Values
- User will select prompts, and
click Run Query
- The query will be generated,
and passed to the source Database
- Data will be returned to the
- The report will be rendered
- The report will be ‘painted’
on the user’s screen
you can use a web based tool such as HTTPWatch to see what is going on in your
browser window, you will miss much of the behind-the-scenes processing
information. That detail is available in the Trace Logs.
trace turns on verbose logging on your server of choice. This means that every action taken by the
server (service) is written to a log file. As you can imagine, there is a
definite cost to performance for turning trace on. You also need to watch your
disk space, since these files can grow rapidly, and quickly eat up any free
space you might have. Cautions aside,
you can learn much from a carefully executed trace.
you start, you create a test plan. It doesn’t need to be intricate, but before
you start you should know what reports you want to investigate and what order
you are going to run them in. You should also, if possible, run this test with
no other users on the system. This will help keep extra clutter out of your
trace logs and make them easier to analyze. One final recommendation I would
make is that if you run multiple Webi servers (like I do) shut all of them down
except one. This way you know for sure which one is handling your request, and
also cuts down on the clutter in the logs.
to Enable Trace
BusinessObjects XI r2, trace is merely a factor of On or Off. In Windows, you open the CCM tool and edit
the startup string for the server adding the ‘-trace’ switch, and restart the
server. In Non-Windows (Linux or UNIX), you edit the ccm.config file, add the
‘-trace’ switch and restart the server using ccm.sh.
log files will go to the default logging folder.
In XI 3.x you have more options. You can set the level of verbosity you want
trace to use, and you can specify a target folder for the logs to be placed in
overriding the default.
set up trace in XI 3.x, first you must create an .ini file. Open up your favorite text editor, and create
a new file with the following values:
= 100 * 1000;
example for WINDOWS
example for UNIX
can choose your level of verbosity in the file by changing the value of the
have the following verbosity options to choose from:
or ‘<<‘ Lowest level (most
verbose option). All details.
or ‘<=’ Low level: at/or above the
or ‘==’ Normal level: at/or above the
or ‘>=’ High level: at/or above
the high level.
or ‘>>’ Highest level (least
verbose option). Highest level.
the file with the following name and extension based on your OS:
then place your file where the monitored process resides.
[BusinessObjects install folder]\bobje
one final configuration change. Edit the file in
platform]\dataAccess\connectionServer\cs.cfgEach traced activity
will have an tag where the operation starts, and an tag where it
completed along with a duration. The duration timestamp goes down to the
Here is my test
report again, and the entry for how long it took this report to be retrieved
from the FRS:
Keep walking through
your log and you will see the logical progression of the report generation as
described earlier. The SQL statement will get generated, and you will even see
the SQL Statement before and after the refresh in the log files. You will find the tag for the refresh,
so you know how long it took BOE to get the data from your database:
Mine took 3 minutes,
piece is how long it took to render the page. Applying fonts, determining how
many pages, page breaks, formatting, etc. all takes some time:
My report took
40.597 seconds to render.
There is much, much
more detail in the trace logs for you to discover. Take your time and go
through them and you can see all of the different pieces involved between that
user request for the report, and the finished product being displayed on the
screen. Keep in mind that many operations happen simultaneously, so keep your eye on the timestamp so you don’t get lost in the flood of information. Use your contemporaneous log from the test run to keep track of where you are in the test process, and you’ll be amazed at what you start learning about your BOE system and where it spends its time.
Hope you find this
useful, and that your Holidays will be filled with many happy Logs!