Gather WebSphere Thread Pool Utilization Data In A Text File

I am running a WebSphere 8.x cluster and would like to be able to more closely monitor my JDBC connection pool utilization. All I basically want to do is run a script every couple of minutes that gathers a few jdbc connection pool metrics and writes the results to a CSV file. If the task requires scripting then that is fine. My issue is that I have no idea how to get at that information or if there is a simpler way to get what I need.

The only built-in tool that I'm aware of is Tivoli Performance Monitor, which is nice but it has a few disadvantages:

  1. The docs say that it is not intended to be a "full-time logging solution". I need something that runs all of the time.
  2. The output formats are binary (!?!) and XML. I can write a script to parse that XML and build a CSV file, but I would rather not.

In the past I've use JMX to interrogate a running non-WAS-JVM and gather information like this. However, I've had a lot of issues setting up a WebSphere JVM to use JMX. As far as I can tell there aren't very many resources on it and it's not recommended.

And of course option 3 is "buy some software" but that usually doesn't satisfy my requirements either.

Is there something out there that I'm missing?


Solution 1:

I think your best bet would be to use wsadmin with a jython script. This is the way I've seen it done before and then you could load that csv into nagios or something. The wsadmin script could be set in cron to run or some scheduler on windows.

IBM has an unofficial jython library which has a bunch of helpers and makes writing the jython easier..

https://github.com/wsadminlib/wsadminlib

I also found this which is pretty close to what you are looking to do as an example..

http://tech.ivkin.net/wiki/WebSphere_Performance_Monitoring_jython_script