No, you don't need to null out the references. Sending close() is enough. If you're not seeing things returned to the pool my guess is there's probably one place in your code where you're not sending close(). For instance, do you have finally{} clauses that force a close() in all of your exception handling code surrounding your
JDBC code?
Here's a simple tip -- never, ever place a connection in an instance variable, a static variable, or anything other than a method temporary variable -- it makes managing the scope of your connections simpler and helps avoid connection leaks.
Kyle