A customer has a Websphere hosting an application (2 JVMs on two different servers) that connects to around 10 different databases, they recently are facing problems with database not accepting connections due to connection pool filling up.
The problem is other applications (JVMs) that does not have a dynaTrace agent also connects to the database. Also the "Pool Usage" dashlet that appears in the Database Dashboard shows the "Average DB pool usage" during the chosen period but not the "current", the closest number that I could see or think is "the current" pool usage is "Last Pool Usage" - I am not sure -
Now if "Last Pool Usage" is actually the real "current pool usage":
1- I could not find "Last Pool Usage" as a measure to put upper limit to create an incident and alert on.
2- Does the value of "Last Pool Usage" include the usage of other JVMs that doesn't have dynaTrace agent?
3- Will the incident occur if any of the 10 databases exceed the limit or of the average of all DBs pool usage exceeds the limit?
If the "Last Pool Usage" is not a measure I can use or not the actual "current pool usage" or it doesn't count the other connections from other (JVMs), what other possibilities do I have? Are there any other measures that would do the job? Does the "Oracle Monitor Plugin" a solution?
Any help is appreciated...
Answer by Andreas G. ·
Our Agent only gets the Connection Pool Statistics from the Application that you have instrumented. That means these values do not reflect connection pool information from your other JVMs that you have not instrumented.
We capture the "pool usage" statistics on the PurePath when the app gets the connection out of the pool - that is the getConnection method that we instrument. When opening the database dashlet the pool information you see is an aggregate of all PurePaths from your selected timeframe, e.g: Min, Max, Avg of Last 30 Minutes. If you want to get the "Last or Current" value you need to look at a PurePath of that timeframe and open the details on the getConnection method.
To "monitor" Database Connection Usage its best practice to capture additional JMX Metrics that your App Server exposes. If you go to your System Profile under Measures you can create Measures for WebSphere. There is a list of pre-configured JDBC JMX Measures. You will find them under Server-Side Performance -> Agent based Measures -> WebSphere. Once you have these measures created it will be easy to put them on a chart and monitor them. You can then also set up Alerts and Incidents.
But Remember: these are the connecction pool statistics FOR YOUR APPLICATION - NOT for the overall database or other Apps