You definitely don't want ON_CLOSE. The manual IMHO is pretty clear about what each of these mean. I'm not sure what pool & TX manager you're using, but for JBoss AS it is important to use AFTER_STATEMENT as the JCA DataSource handles the actual caching and tracking of connections in a transaction.
http://www.redhat.com/docs/manuals/jbos ... Modes.html
Unless you've got a pretty crazy use case, the default (AUTO) is going to pick the right strategy based on ConnectionProvider and transaction lookup configuration.
-Chris