Dashbuilder not closing ResultSets and Statements leading to ORA-01000 error
Issue
We have registered an advanced custom query in our BPMS instance, and the datasource used by business-central is configured with:
<track-statements>true</track-statements>
This leads to the following WARN message to be logged repeatedly:
WARN [org.jboss.jca.adapters.jdbc.WrappedConnection] Closing a statement you left open, please do your own housekeeping: java.lang.Throwable: STACKTRACE
at org.jboss.jca.adapters.jdbc.WrappedConnection.registerStatement(WrappedConnection.java:1716)
at org.jboss.jca.adapters.jdbc.WrappedStatement.<init>(WrappedStatement.java:105)
at org.jboss.jca.adapters.jdbc.jdk6.WrappedStatementJDK6.<init>(WrappedStatementJDK6.java:51)
at org.jboss.jca.adapters.jdbc.jdk6.WrappedConnectionJDK6.wrapStatement(WrappedConnectionJDK6.java:67)
at org.jboss.jca.adapters.jdbc.WrappedConnection.createStatement(WrappedConnection.java:305)
at org.dashbuilder.dataprovider.sql.JDBCUtils.executeQuery(JDBCUtils.java:77) [dashbuilder-dataset-sql-0.5.0.Final-redhat-3.jar:0.5.0.Final-redhat-3]
at org.dashbuilder.dataprovider.sql.model.Select.fetchCount(Select.java:173) [dashbuilder-dataset-sql-0.5.0.Final-redhat-3.jar:0.5.0.Final-redhat-3]
at org.dashbuilder.dataprovider.sql.SQLDataSetProvider._getRowCount(SQLDataSetProvider.java:436) [dashbuilder-dataset-sql-0.5.0.Final-redhat-3.jar:0.5.0.Final-redhat-3]
at org.dashbuilder.dataprovider.sql.SQLDataSetProvider._getDataSetMetadata(SQLDataSetProvider.java:381) [dashbuilder-dataset-sql-0.5.0.Final-redhat-3.jar:0.5.0.Final-redhat-3]
at org.dashbuilder.dataprovider.sql.SQLDataSetProvider$LookupProcessor.run(SQLDataSetProvider.java:636) [dashbuilder-dataset-sql-0.5.0.Final-redhat-3.jar:0.5.0.Final-redhat-3]
at org.dashbuilder.dataprovider.sql.SQLDataSetProvider._lookupDataSet(SQLDataSetProvider.java:441) [dashbuilder-dataset-sql-0.5.0.Final-redhat-3.jar:0.5.0.Final-redhat-3]
at org.dashbuilder.dataprovider.sql.SQLDataSetProvider.lookupDataSet(SQLDataSetProvider.java:235) [dashbuilder-dataset-sql-0.5.0.Final-redhat-3.jar:0.5.0.Final-redhat-3]
at org.dashbuilder.dataset.DataSetManagerImpl.lookupDataSet(DataSetManagerImpl.java:153) [dashbuilder-dataset-core-0.5.0.Final-redhat-3.jar:0.5.0.Final-redhat-3]
at org.jbpm.kie.services.impl.query.QueryServiceImpl.query(QueryServiceImpl.java:202) [jbpm-kie-services-6.5.0.Final-redhat-2.jar:6.5.0.Final-redhat-2]
at org.jbpm.kie.services.impl.query.QueryServiceImpl.query(QueryServiceImpl.java:170) [jbpm-kie-services-6.5.0.Final-redhat-2.jar:6.5.0.Final-redhat-2]
at org.kie.server.services.jbpm.QueryDataServiceBase.query(QueryDataServiceBase.java:110) [kie-server-services-jbpm-6.5.0.Final-redhat-2.jar:6.5.0.Final-redhat-2]
at org.kie.server.remote.rest.jbpm.QueryDataResource.runQuery(QueryDataResource.java:164) [kie-server-rest-jbpm-6.5.0.Final-redhat-2.jar:6.5.0.Final-redhat-2]
at sun.reflect.GeneratedMethodAccessor94.invoke(Unknown Source) [:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_111]
at java.lang.reflect.Method.invoke(Method.java:498) [rt.jar:1.8.0_111]
In our production environment, we are using Oracle database for persistence, and track-statements is set to false. After some time, we are seeing the following errors from the database:
14:55:58,211 WARN [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (EJB default - 7) SQL Error: 1000, SQLState: 72000
14:55:58,211 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (EJB default - 7) ORA-01000: maximum open cursors exceeded
14:55:58,211 WARN [org.jbpm.shared.services.impl.TransactionalCommandService] (EJB default - 7) Could not commit session: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet
Both issues indicate that a ResultSet or a Statement is not properly closed.
Environment
- Red Hat JBoss BPM Suite
- 6.4.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
