Enhanced Tomcat Monitoring with IBM Cognos 10
Some of the most common requests that we field from our clients are related to IBM Cognos application performance tuning. Most administrators have the desire to squeeze every last drop of performance out of their applications and make the most out of the hardware they are hosted upon and Cognos is no exception to this practice.
Cognos is a unique application to tune in the sense of the diversity of usage cases and type or profile of request that it services can vary wildly from one implementation to another. For example, environments with a higher number of ad-hoc query users will present different tuning needs than those who prefer to execute their reports in batch after hours. Because of this variability, we have found that the best approach to performance tuning is by methodically capturing information about our Cognos servers while they are in use and incorporating this as feedback into our configuration to better suit the diversity of requests in a single specific environment.
The source of this tuning information has traditionally been log files, the Cognos audit database, and system metrics, but when it came to good ole’ fashioned application server tuning – the Cognos-bundled Apache Tomcat server left plenty room for improvement in its monitoring capabilities. Monitoring your Cognos application server to determine your server health and fine tune your Java Heap size is one of the few tuning exercises that will have a universal benefit to your system – no matter how you have chosen to implement IBM Cognos 8 or 10.
Introducing PSI-Probe for IBM Cognos Tomcat Monitoring
Thankfully the open source development community as delivered once again with PSI-Probe a free and incredibly functional monitoring and management tool that drops quickly and easily into the default Tomcat instance that is included with IBM Cognos. According to the PSI-Probe wiki:
PSI Probe is a community-driven fork of Lambda Probe distributed under the same open-source license (GPLv2). It is intended to replace and extend Tomcat Manager, making it easier to manage and monitor an instance of Apache Tomcat.
Unlike many other server monitoring tools, PSI Probe does not require any changes to your existing apps. It provides all of its features through a web-accessible interface that becomes available simply by deploying it to your server. These features include:
- Requests: Monitor traffic in real-time, even on a per-application basis.
- Sessions: Browse/search attributes, view last IP, expire, estimate size.
- JSP: Browse, view source, compile.
- Data Sources: View pool usage, execute queries.
- Logs: View contents, download, change levels at runtime.
- Threads: View execution stack, kill.
- Connectors: Status, usage charts.
- Cluster: Status, usage charts.
- JVM: Memory usage charts, advise GC
- Java Service Wrapper: Restart JVM.
- System: CPU usage, memory usage, swap file usage.
Installing PSI-Probe with IBM Cognos 10
The following steps were tested with an IBM Cognos 10 (32 bit) environment, but should be similar and reproducible for 32 bit or 64 bit versions of either Cognos 8.4 or Cognos 10.
- Download the latest version of PSI Probe from http://code.google.com/p/psi-probe/downloads/list
- Stop Cognos 10 on your server.
- Edit <C10 Base>/bin/bootstrap_win32.xml and insert the following lines after the <!– end debug params –> comment in this file.
<!-- Begin JMX --> <param>-Dcom.sun.management.jmxremote</param> <param>-Dcom.sun.management.jmxremote.port=29001</param> <param>-Dcom.sun.management.jmxremote.ssl=false</param> <param>-Dcom.sun.management.jmxremote.authenticate=false</param> <!-- End JMX -->
- Unzip the PSI Probe archive, and copy the probe.war file into <C10 Base>/webapps
- Edit <C10 Base>/tomcat/conf/tomcat-users.xml to include the following lines (change the username/password as needed).
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="poweruser"/> <role rolename="poweruserplus"/> <role rolename="probeuser"/> <role rolename="manager"/> <user username="admin" password="t0psecret" roles="manager"/> </tomcat-users>
- Start Cognos 10.
- Go to http://<hostname>:9300/probe and log in using the credentials you set in step 5 (admin/t0psecret). If you’ve changed your default port for Cognos 10, use that port rather than 9300.
Once you’ve installed PSI Probe and have begun collecting Tomcat server information, I highly recommend reading though this insightful IBM Cognos Proven Practices document on Understanding Java Garbage Collection in IBM Cognos. Armed with this information, you’ll be well suited to begin fine tuning your Tomcat Java Heap, and with regular monitoring statistics, you’ll also be better informed as to when you have reached the limitations of certain server resources in your Cognos environment.
If you have additional questions about performance tuning your IBM Cognos environment, troubleshooting application performance or establishing a plan for scaling to a larger user base, please contact us for more information.
This is usefulm, thank you.
However on Cognos 10.1 64 bit you need to edit the bootstrap_win64.xml file in the bin64 directory and only insert the following
Otherwise you get an error on Cognos start up.
Hi Kerry – You are absolutely correct, for 64 bit cognos installations the location and filename will change respectively, and thanks for the tip on changes to the JMX interface configuration as well!
Thanks i wil have to check into that.
Was wondering how you get this to work with a clustered enviroment?
I’m not aware of a way to enable this with PSI-Probe but I have looked into other similar tools that allow for a separate centralized monitoring server. Javamelody is one of those tools: http://code.google.com/p/javamelody/wiki/UserGuideAdvanced#Optional_centralization_server_setup