Hi Dario,
So basically there is some code that is not closing its connections properly / at all.
You don't mention which version of Maximo / MAS you are using so that makes it harder to make specific recommendations.
I'll assume that you haven't got any 3rd party pieces of software misbehaving e.g. interfaces that are directly logging into the database.
On that basis there are three main areas that can cause these problems
- BIRT reports - prior to 7.6 there were about 25 out of the box BIRT reports that leaked connections because they failed to close secondary datasets - Any BIRT reports built on 7.5 reports should be checked to confirm that secondary datasets (e.g. in fetch methods) are closing the dataset
- The 7.6 reports were fixed as part of the rollout process so they should be fine now
- Cohesive offer a service where we can automatically check BIRT reports and warn of problems - if you think you/your client would be interested in this then reach out to me
- OOB Java classes - For the past few years I, and others, have been raising PMRs and getting fixes for DB connection leaks in OOB Java code - so ensure that the system is patched to the latest interim fix pack to receive a substantial number of fixes
- Custom code - Look for code that opens MBOSets from the MXServer but doesn't close them - I did a series of articles about DB connection leaks - see this link and go to the section labelled ""
- Cohesive offer a service where we can automatically check automation scripts and warn of problems - if you think you/your client would be interested in this then reach out to me
How do you get more details about the leaks and the code that is submitting the queries?
You can query the DB to get the SQL for open cursors but that often doesn't help because it doesn't tell you anything about the Java/script code that submitted the SQL.
Go to the Logging application and reconfigure the dbconnection logger.
My article here explains how to do this and what to look for:
https://www.linkedin.com/pulse/db-connections-mbosets-understanding-which-piece-code-mark-robbins
I have published details of some of the key ways that code / scripts leak cursors here:
https://www.linkedin.com/pulse/maximo-support-advice-from-non-ibm-engineer-article-mark-robbins/ in the section labelled "Managing MboSets – MBOSet overview - (#mbosetMgtPractices)"
that should give you enough information to get started.
the sooner you change the dbconnection logger to INFO the sooner you will get information about the code that leaked the cursors ...
If you aren't familiar with the SystemOut.log files then we offer an automated log analysis service which can process the logs and generate a nice report that lists the database connection leaks along with details of fixes for known issues
------------------------------
Mark Robbins
Support Lead/Technical Design Authority / IBM Champion 2017 - 2023
Cohesive (previously Vetasi Limited)
https://www.linkedin.com/pulse/maximo-support-advice-from-non-ibm-engineer-article-mark-robbins/------------------------------