Techniques for monitoring IBM Data Server Driver for JDBC and SQLJ sysplex support
To monitor IBM® Data Server Driver for JDBC and SQLJ sysplex support, you need to monitor the global transport objects pool.
- Using traces that you start by setting IBM Data Server Driver for JDBC and SQLJ configuration properties
- Using an application programming interface
Configuration properties for monitoring the global transport objects pool
The db2.jcc.dumpPool, db2.jcc.dumpPoolStatisticsOnSchedule, and db2.jcc.dumpPoolStatisticsOnScheduleFile configuration properties control tracing of the global transport objects pool.
Example: The following set of configuration property settings cause error messages, dump pool error messages, and transport pool statistics to be written every 60 seconds to a file named /home/WAS/logs/srv1/poolstats:
db2.jcc.dumpPool=DUMP_SYSPLEX_MSG|DUMP_POOL_ERROR
db2.jcc.dumpPoolStatisticsOnSchedule=60
db2.jcc.dumpPoolStatisticsOnScheduleFile=/home/WAS/logs/srv1/poolstats
An entry in the pool statistics file looks like this:
time Scheduled PoolStatistics npr:2575 nsr:2575 lwroc:439 hwroc:1764 coc:372
aooc:362 rmoc:362 nbr:2872 tbt:857520 tpo:10
group: DSNDB port: 446 hwmpo: 20 twte: 5 ngipr: 50 ttcpto: 2
member: port: 446 DB1A hwmiut: 6 hwmt: 2 tmct: 1 trto: 0
member: port: 446 DB1B hwmiut: 7 hwmt: 2 tmct: 1 trto: 0
member: port: 446 DB1C hwmiut: 6 hwmt: 1 tmct: 0 trto: 1
The meanings
of the fields are: - npr
- The total number of requests that the IBM Data Server Driver for JDBC and SQLJ has made to the pool since the pool was created.
- nsr
- The number of successful requests that the IBM Data Server Driver for JDBC and SQLJ has made to the pool since the pool was created. A successful request means that the pool returned an object.
- lwroc
- The number of objects that were reused but were not in the pool. This can happen if a Connection object releases a transport object at a transaction boundary. If the Connection object needs a transport object later, and the original transport object has not been used by any other Connection object, the Connection object can use that transport object.
- hwroc
- The number of objects that were reused from the pool.
- coc
- The number of objects that the IBM Data Server Driver for JDBC and SQLJ created since the pool was created.
- aooc
- The number of objects that exceeded the idle time that was specified by db2.jcc.maxTransportObjectIdleTime and were deleted from the pool.
- rmoc
- The number of objects that have been deleted from the pool since the pool was created.
- nbr
- The number of requests that the IBM Data Server Driver for JDBC and SQLJ made to the pool that the pool blocked because the pool reached its maximum capacity. A blocked request might be successful if an object is returned to the pool before the db2.jcc.maxTransportObjectWaitTime is exceeded and an exception is thrown.
- tbt
- The total time in milliseconds for requests that were blocked by the pool. This time can be much larger than the elapsed execution time of the application if the application uses multiple threads.
- sbt
- The shortest time in milliseconds that a thread waited to get a transport object from the pool. If the time is under one millisecond, the value in this field is zero.
- lbt
- The longest time in milliseconds that a thread waited to get a transport object from the pool.
- abt
- The average amount of time in milliseconds that threads waited to get a transport object from the pool. This value is tbt/nbr.
- tpo
- The number of objects that are currently in the pool.
- group
- The data sharing group for which transport pool statistics were gathered.
- port
- The port number of the data sharing group or member.
- hwmpo
- The maximum number of pool objects that were created since the pool was created.
- twte
- The number of times that the maxTransportWaitTime value was exceeded since the pool was created.
- ngipr
- The number of times that the group IP address was used since the pool was created.
- ttcpto
- The total number of times that members of the data sharing group had a connection timeout when they were establishing a new connection.
- member
- The member of the data sharing group for which transport statistics were gathered.
- hwmiut
- The maximum number of in-use transports for the data sharing member since the pool was created.
- hwmt
- The maximum number of transports that have been allocated to the data sharing member since the pool was created.
- tmct
- The number of times that the memberConnectTimeout value was reached for the data sharing member since the pool was created.
- trto
- The number of times that a read timeout occurred for the data sharing member since the pool was created.
Application programming interfaces for monitoring the global transport objects pool
You can write applications to gather statistics on the global transport objects pool. Those applications create objects in the DB2PoolMonitor class and invoke methods to retrieve information about the pool.
import com.ibm.db2.jcc.DB2PoolMonitor;
DB2PoolMonitor transportObjectPoolMonitor =
DB2PoolMonitor.getPoolMonitor (DB2PoolMonitor.TRANSPORT_OBJECT);
After you create the DB2PoolMonitor object, you can use methods in the DB2PoolMonitor class to monitor the pool.