I have a particular jdbc driver that misbehaves when used in JBoss' connection pool - after a few hundred connections of this datasource JBoss will start throwing OutOfMemory Exceptions. This is a legacy database and until we can complete our port, I'm stuck with it.
I guessed that the driver isn't fully compliant with the JDBC spec and so the connections couldn't be cleaned up properly by JBoss. So, for that particular database driver I decided to get an "external" connection (i.e. called DriverManager.getConnection to get a direct connection).
That did solve my OutOfMemory exception, and queries work fine, but now any insert/update/delete attempts throw an exception stating "Not in transaction".
Can anyone suggest a better approach, or how I can make things work the way I've done it? (If it matters or anyone cares, the database in question is Informix-SE)