DatabaseMetaData result sets

DatabaseMetaData result sets do not close the result sets of other statements, even when auto-commit is set to true.

DatabaseMetaData result sets are closed if a user performs any other action on a JDBC object that causes an automatic commit to occur. If you need the DatabaseMetaData result sets to be accessible while executing other actions that would cause automatic commits, turn off auto-commit with setAutoCommit(false).

Related reference
Columns in the ResultSets returned by getFunctionColumns and getProcedureColumns
java.sql.DatabaseMetaData.getBestRowIdentifier method