Getting "java.sql.SQLException: Transaction state not valid." at executing SQL when datasource connection validation is enabled for AS400 Database in EAP 6
Issue
After datasource connection validation (<check-valid-connection-sql>SELECT 1 FROM SYSIBM.SYSDUMMY1</check-valid-connection-sql>) is enabled against AS400 Database in EAP 6, the following "java.sql.SQLException: Transaction state not valid." is thrown at executing SQL. This exception does not happen when datasource connection validation is not enabled.
org.springframework.jdbc.support.MetaDataAccessException: Error while extracting DatabaseMetaData; nested exception is java.sql.SQLException: Transaction state not valid.
at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:305)
at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:329)
at org.springframework.jdbc.support.SQLErrorCodesFactory.getErrorCodes(SQLErrorCodesFactory.java:214)
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.setDataSource(SQLErrorCodeSQLExceptionTranslator.java:134)
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.<init>(SQLErrorCodeSQLExceptionTranslator.java:97)
at org.mybatis.spring.MyBatisExceptionTranslator.initExceptionTranslator(MyBatisExceptionTranslator.java:86)
at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:73)
at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:421)
at com.sun.proxy.$Proxy60.selectList(Unknown Source)
at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:206)
...(snip)...
Caused by: java.sql.SQLException: Transaction state not valid.
at com.ibm.as400.access.JDError.createSQLExceptionSubClass(JDError.java:863)
at com.ibm.as400.access.JDError.throwSQLException(JDError.java:418)
at com.ibm.as400.access.AS400JDBCConnection.setReadOnly(AS400JDBCConnection.java:3834)
at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.checkState(BaseWrapperManagedConnection.java:939)
at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.checkTransaction(BaseWrapperManagedConnection.java:925)
at org.jboss.jca.adapters.jdbc.WrappedConnection.checkTransaction(WrappedConnection.java:1633)
at org.jboss.jca.adapters.jdbc.WrappedConnection.getMetaData(WrappedConnection.java:835)
at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:294)
... 128 more
Environment
- Red Hat JBoss Enterprise Application Platform (EAP)
- 6.x
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.