thank you very much for your answer. I already thought it would be some stuff like that. I'm currently fighting with small-size pools, it seems it does not release my connection. That's going to be a little bit more funny...
I just wanted to mention that with this patch you do not use the pool anymore. But another fix would be bigger, I think ;)
You can get the oracle (or whatever) connection from the jboss wrapper by calling ((JDBCConnection)conn).getUnderlyingConnection(), and do what you like with it. When you are done, be SURE to close the jboss connection, not the Oracle one, or you will be very sorry. Be sure to release all resources quickly to minimize the chances of interfering with the pooling.
This won't use the prepared statement caching of the jboss wrappers, but the Oracle driver's caching is probably better anyway.
If my fix doesn't use the pool, then none of the other calls to createStatement or prepareCall do either...my imlementation is a cut and paste of createStatement style...