In the process of attempting to reduce resource over head and transaction duration, I discovered that JBoss was caching the values of every result set returned from the DB. The class responsible for this behavior is XAClientConnection.prepareStatement. It calls three methods LeastRecentlyUsedCache.useObject, getObject, and addObject upon executing any query. We can not take advantage of this caching as we have a highly concurrent system. I am interested in finding a way to either turn off the caching that is occurring, or replace XAClientConnection with another connection class that provides control over db query caching. We are using two different classes to gain access to XAClientConnection.
They are, org.jboss.pool.jdbc.xa.wrapper.XADataSourceImpl, and org.jboss.pool.jdbc.xa.XAPoolDataSource.
Any suggestions on what to replace these connection classes with, and how to control the caching that is occurring would be greatly appreciated.