Follow on to this post I hava two Tomcat jars which support connection pooling. Which one am I using? I don't think there is any difference in the application code, which is making the db calls. I suppose I could swap the files out, only have one in the directory at a time. But I am assuming there is a smarter way of figuring this out. And it will include the word "classloader".
Please ignore post, I have no idea what I am talking about.
So I took the brute force method and swapped these jar files out of $CATALINA_HOME/lib The result was that tomcat-dbcp.jar is not used, because I was able to recreate the issue when it the jar was not available. This is good to know, but doesn't help me, as the suggestions on the internet to address the "max open cursors exceeded" issue was to use tomcat-jdbc.jar for the connection pooling. But I am already doing that.
Connection Pools are plug-in components. You can have as many different connection pool implementations as you like - even concurrently, since the choice of which pool implementation you use is made by supplying its primary classname in the pool resource definition in the Tomcat server or Context.
And, yes, no changes should be required to applications unless they are explicitly using pool-specific features, since the actual application interface is the DataSource returned from Tomcat by JNDI.
An IDE is no substitute for an Intelligent Developer.
You never actually named the jdbc pool jars in question unless my bleary eyes deceive me. Nor indicated where they came from. I take it as a given that one of them shipped with Tomcat, but what about the other?
Although you can specify which pooler you want to use in the server config, if you have a classpath conflict, it's still a classpath conflict.