Whenever the JBossTS transaction recovery manager asks for an XAResource from a JDBC XA datasource we call java.sql.Connection.isValid(int) to ensure the connection is valid. However, in DB2 a call to java.sql.Connection.isValid(int) causes the connection made from the DB2 JDBC driver to the back-end DB2 RDBMS to become "active" which prevents an administrative shutdown of the DB2 RDBMS instance. To deal with this quirk in the DB2 implementation of java.sql.Connection.isValid(int) and since we cannot change the configuration schema at this point we should support a new system property named "recover-connection-validation" which can be used to turn the validation off, e.g.:
Using "false" for "recover-connection-validation" will force the recovery connection used for an XA JDBC datasource to be re-created every time the JBossTS transaction recovery manager asks for it.
In the future we can change the configuration schema to support this functionality directly.