Skip to content

Commit 28a54ec

Browse files
OFBIZ-13412:
Removed the two inline parameters that are no longer required: AUTO_SERVER=TRUE and LOCK_TIMEOUT=60000. The AUTO_SERVER attribute is useful when you want to access the H2 database from an external SQL client. However, as per my understanding, H2 is generally not accessed through an external SQL client, and instead the SQL Processor option available in WebTools can be used. I have noticed the following errors occurring in some cases. For example, the errors appear approximately once in every ten runs of the following build and data load command: ./gradlew cleanAll loadAll 2026-05-20 09:39:03,612 |xer_default_products |DocumentIndexer |I| DocumentIndexer_default_products: indexed Lucene document: productId:GZ-2644 2026-05-20 09:39:03,613 |xer_default_products |GenericDelegator |E| Failure in findByCondition operation for entity [ProductContentAndInfo]: org.apache.ofbiz.entity.GenericDataSourceException: SQL Exception while executing the following:SELECT PC.PURCHASE_FROM_DATE, PC.USE_TIME_UOM_ID, PC.PRODUCT_ID, PC.SEQUENCE_NUM, PC.CONTENT_ID, PC.USE_COUNT_LIMIT, PC.PRODUCT_CONTENT_TYPE_ID, PC.THRU_DATE, PC.FROM_DATE, PC.USE_ROLE_TYPE_ID, PC.USE_TIME, PC.PURCHASE_THRU_DATE, CO.OWNER_CONTENT_ID, CO.CONTENT_TYPE_ID, CO.DESCRIPTION, CO.MIME_TYPE_ID, CO.CHILD_LEAF_COUNT, CO.PRIVILEGE_ENUM_ID, CO.DATA_SOURCE_ID, CO.LAST_MODIFIED_BY_USER_LOGIN, CO.DATA_RESOURCE_ID, CO.CREATED_BY_USER_LOGIN, CO.TEMPLATE_DATA_RESOURCE_ID, CO.LAST_MODIFIED_DATE, CO.INSTANCE_OF_CONTENT_ID, CO.SERVICE_NAME, CO.CUSTOM_METHOD_ID, CO.CHARACTER_SET_ID, CO.CONTENT_NAME, CO.CREATED_DATE, CO.STATUS_ID, CO.LOCALE_STRING, CO.DECORATOR_CONTENT_ID, CO.CHILD_BRANCH_COUNT, DR.DATA_RESOURCE_NAME, DR.SURVEY_ID, DR.DATA_TEMPLATE_TYPE_ID, DR.LAST_MODIFIED_DATE, DR.MIME_TYPE_ID, DR.DATA_CATEGORY_ID, DR.SURVEY_RESPONSE_ID, DR.CHARACTER_SET_ID, DR.DATA_SOURCE_ID, DR.LAST_MODIFIED_BY_USER_LOGIN, DR.CREATED_DATE, DR.STATUS_ID, DR.LOCALE_STRING, DR.RELATED_DETAIL_ID, DR.DATA_RESOURCE_ID, DR.IS_PUBLIC, DR.OBJECT_INFO, DR.DATA_RESOURCE_TYPE_ID, DR.CREATED_BY_USER_LOGIN FROM (OFBIZ.PRODUCT_CONTENT PC INNER JOIN OFBIZ.CONTENT CO ON PC.CONTENT_ID = CO.CONTENT_ID) LEFT OUTER JOIN OFBIZ.DATA_RESOURCE DR ON CO.DATA_RESOURCE_ID = DR.DATA_RESOURCE_ID WHERE ((PC.PRODUCT_ID = ? AND PC.PRODUCT_CONTENT_TYPE_ID = ?)) (The database has been closed; SQL statement: SELECT PC.PURCHASE_FROM_DATE, PC.USE_TIME_UOM_ID, PC.PRODUCT_ID, PC.SEQUENCE_NUM, PC.CONTENT_ID, PC.USE_COUNT_LIMIT, PC.PRODUCT_CONTENT_TYPE_ID, PC.THRU_DATE, PC.FROM_DATE, PC.USE_ROLE_TYPE_ID, PC.USE_TIME, PC.PURCHASE_THRU_DATE, CO.OWNER_CONTENT_ID, CO.CONTENT_TYPE_ID, CO.DESCRIPTION, CO.MIME_TYPE_ID, CO.CHILD_LEAF_COUNT, CO.PRIVILEGE_ENUM_ID, CO.DATA_SOURCE_ID, CO.LAST_MODIFIED_BY_USER_LOGIN, CO.DATA_RESOURCE_ID, CO.CREATED_BY_USER_LOGIN, CO.TEMPLATE_DATA_RESOURCE_ID, CO.LAST_MODIFIED_DATE, CO.INSTANCE_OF_CONTENT_ID, CO.SERVICE_NAME, CO.CUSTOM_METHOD_ID, CO.CHARACTER_SET_ID, CO.CONTENT_NAME, CO.CREATED_DATE, CO.STATUS_ID, CO.LOCALE_STRING, CO.DECORATOR_CONTENT_ID, CO.CHILD_BRANCH_COUNT, DR.DATA_RESOURCE_NAME, DR.SURVEY_ID, DR.DATA_TEMPLATE_TYPE_ID, DR.LAST_MODIFIED_DATE, DR.MIME_TYPE_ID, DR.DATA_CATEGORY_ID, DR.SURVEY_RESPONSE_ID, DR.CHARACTER_SET_ID, DR.DATA_SOURCE_ID, DR.LAST_MODIFIED_BY_USER_LOGIN, DR.CREATED_DATE, DR.STATUS_ID, DR.LOCALE_STRING, DR.RELATED_DETAIL_ID, DR.DATA_RESOURCE_ID, DR.IS_PUBLIC, DR.OBJECT_INFO, DR.DATA_RESOURCE_TYPE_ID, DR.CREATED_BY_USER_LOGIN FROM (OFBIZ.PRODUCT_CONTENT PC INNER JOIN OFBIZ.CONTENT CO ON PC.CONTENT_ID = CO.CONTENT_ID) LEFT OUTER JOIN OFBIZ.DATA_RESOURCE DR ON CO.DATA_RESOURCE_ID = DR.DATA_RESOURCE_ID WHERE ((PC.PRODUCT_ID = ? AND PC.PRODUCT_CONTENT_TYPE_ID = ?)) [90098-240]). Rolling back transaction. org.apache.ofbiz.entity.GenericDataSourceException: SQL Exception while executing the following:SELECT PC.PURCHASE_FROM_DATE, PC.USE_TIME_UOM_ID, PC.PRODUCT_ID, PC.SEQUENCE_NUM, PC.CONTENT_ID, PC.USE_COUNT_LIMIT, PC.PRODUCT_CONTENT_TYPE_ID, PC.THRU_DATE, PC.FROM_DATE, PC.USE_ROLE_TYPE_ID, PC.USE_TIME, PC.PURCHASE_THRU_DATE, CO.OWNER_CONTENT_ID, CO.CONTENT_TYPE_ID, CO.DESCRIPTION, CO.MIME_TYPE_ID, CO.CHILD_LEAF_COUNT, CO.PRIVILEGE_ENUM_ID, CO.DATA_SOURCE_ID, CO.LAST_MODIFIED_BY_USER_LOGIN, CO.DATA_RESOURCE_ID, CO.CREATED_BY_USER_LOGIN, CO.TEMPLATE_DATA_RESOURCE_ID, CO.LAST_MODIFIED_DATE, CO.INSTANCE_OF_CONTENT_ID, CO.SERVICE_NAME, CO.CUSTOM_METHOD_ID, CO.CHARACTER_SET_ID, CO.CONTENT_NAME, CO.CREATED_DATE, CO.STATUS_ID, CO.LOCALE_STRING, CO.DECORATOR_CONTENT_ID, CO.CHILD_BRANCH_COUNT, DR.DATA_RESOURCE_NAME, DR.SURVEY_ID, DR.DATA_TEMPLATE_TYPE_ID, DR.LAST_MODIFIED_DATE, DR.MIME_TYPE_ID, DR.DATA_CATEGORY_ID, DR.SURVEY_RESPONSE_ID, DR.CHARACTER_SET_ID, DR.DATA_SOURCE_ID, DR.LAST_MODIFIED_BY_USER_LOGIN, DR.CREATED_DATE, DR.STATUS_ID, DR.LOCALE_STRING, DR.RELATED_DETAIL_ID, DR.DATA_RESOURCE_ID, DR.IS_PUBLIC, DR.OBJECT_INFO, DR.DATA_RESOURCE_TYPE_ID, DR.CREATED_BY_USER_LOGIN FROM (OFBIZ.PRODUCT_CONTENT PC INNER JOIN OFBIZ.CONTENT CO ON PC.CONTENT_ID = CO.CONTENT_ID) LEFT OUTER JOIN OFBIZ.DATA_RESOURCE DR ON CO.DATA_RESOURCE_ID = DR.DATA_RESOURCE_ID WHERE ((PC.PRODUCT_ID = ? AND PC.PRODUCT_CONTENT_TYPE_ID = ?)) (The database has been closed; SQL statement: SELECT PC.PURCHASE_FROM_DATE, PC.USE_TIME_UOM_ID, PC.PRODUCT_ID, PC.SEQUENCE_NUM, PC.CONTENT_ID, PC.USE_COUNT_LIMIT, PC.PRODUCT_CONTENT_TYPE_ID, PC.THRU_DATE, PC.FROM_DATE, PC.USE_ROLE_TYPE_ID, PC.USE_TIME, PC.PURCHASE_THRU_DATE, CO.OWNER_CONTENT_ID, CO.CONTENT_TYPE_ID, CO.DESCRIPTION, CO.MIME_TYPE_ID, CO.CHILD_LEAF_COUNT, CO.PRIVILEGE_ENUM_ID, CO.DATA_SOURCE_ID, CO.LAST_MODIFIED_BY_USER_LOGIN, CO.DATA_RESOURCE_ID, CO.CREATED_BY_USER_LOGIN, CO.TEMPLATE_DATA_RESOURCE_ID, CO.LAST_MODIFIED_DATE, CO.INSTANCE_OF_CONTENT_ID, CO.SERVICE_NAME, CO.CUSTOM_METHOD_ID, CO.CHARACTER_SET_ID, CO.CONTENT_NAME, CO.CREATED_DATE, CO.STATUS_ID, CO.LOCALE_STRING, CO.DECORATOR_CONTENT_ID, CO.CHILD_BRANCH_COUNT, DR.DATA_RESOURCE_NAME, DR.SURVEY_ID, DR.DATA_TEMPLATE_TYPE_ID, DR.LAST_MODIFIED_DATE, DR.MIME_TYPE_ID, DR.DATA_CATEGORY_ID, DR.SURVEY_RESPONSE_ID, DR.CHARACTER_SET_ID, DR.DATA_SOURCE_ID, DR.LAST_MODIFIED_BY_USER_LOGIN, DR.CREATED_DATE, DR.STATUS_ID, DR.LOCALE_STRING, DR.RELATED_DETAIL_ID, DR.DATA_RESOURCE_ID, DR.IS_PUBLIC, DR.OBJECT_INFO, DR.DATA_RESOURCE_TYPE_ID, DR.CREATED_BY_USER_LOGIN FROM (OFBIZ.PRODUCT_CONTENT PC INNER JOIN OFBIZ.CONTENT CO ON PC.CONTENT_ID = CO.CONTENT_ID) LEFT OUTER JOIN OFBIZ.DATA_RESOURCE DR ON CO.DATA_RESOURCE_ID = DR.DATA_RESOURCE_ID WHERE ((PC.PRODUCT_ID = ? AND PC.PRODUCT_CONTENT_TYPE_ID = ?)) [90098-240]) at org.apache.ofbiz.entity.jdbc.SQLProcessor.prepareStatement(SQLProcessor.java:399) at org.apache.ofbiz.entity.datasource.GenericDAO.selectListIteratorByCondition(GenericDAO.java:858) at org.apache.ofbiz.entity.datasource.GenericHelperDAO.findListIteratorByCondition(GenericHelperDAO.java:171) at org.apache.ofbiz.entity.GenericDelegator.find(GenericDelegator.java:1657) at org.apache.ofbiz.entity.GenericDelegator.findList(GenericDelegator.java:1705) at org.apache.ofbiz.entity.util.EntityQuery.query(EntityQuery.java:467) at org.apache.ofbiz.entity.util.EntityQuery.queryList(EntityQuery.java:396) at org.apache.ofbiz.content.search.ProductDocument.prepareDocument(ProductDocument.java:280) at org.apache.ofbiz.content.search.DocumentIndexer.run(DocumentIndexer.java:98) Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: The database has been closed; SQL statement: SELECT PC.PURCHASE_FROM_DATE, PC.USE_TIME_UOM_ID, PC.PRODUCT_ID, PC.SEQUENCE_NUM, PC.CONTENT_ID, PC.USE_COUNT_LIMIT, PC.PRODUCT_CONTENT_TYPE_ID, PC.THRU_DATE, PC.FROM_DATE, PC.USE_ROLE_TYPE_ID, PC.USE_TIME, PC.PURCHASE_THRU_DATE, CO.OWNER_CONTENT_ID, CO.CONTENT_TYPE_ID, CO.DESCRIPTION, CO.MIME_TYPE_ID, CO.CHILD_LEAF_COUNT, CO.PRIVILEGE_ENUM_ID, CO.DATA_SOURCE_ID, CO.LAST_MODIFIED_BY_USER_LOGIN, CO.DATA_RESOURCE_ID, CO.CREATED_BY_USER_LOGIN, CO.TEMPLATE_DATA_RESOURCE_ID, CO.LAST_MODIFIED_DATE, CO.INSTANCE_OF_CONTENT_ID, CO.SERVICE_NAME, CO.CUSTOM_METHOD_ID, CO.CHARACTER_SET_ID, CO.CONTENT_NAME, CO.CREATED_DATE, CO.STATUS_ID, CO.LOCALE_STRING, CO.DECORATOR_CONTENT_ID, CO.CHILD_BRANCH_COUNT, DR.DATA_RESOURCE_NAME, DR.SURVEY_ID, DR.DATA_TEMPLATE_TYPE_ID, DR.LAST_MODIFIED_DATE, DR.MIME_TYPE_ID, DR.DATA_CATEGORY_ID, DR.SURVEY_RESPONSE_ID, DR.CHARACTER_SET_ID, DR.DATA_SOURCE_ID, DR.LAST_MODIFIED_BY_USER_LOGIN, DR.CREATED_DATE, DR.STATUS_ID, DR.LOCALE_STRING, DR.RELATED_DETAIL_ID, DR.DATA_RESOURCE_ID, DR.IS_PUBLIC, DR.OBJECT_INFO, DR.DATA_RESOURCE_TYPE_ID, DR.CREATED_BY_USER_LOGIN FROM (OFBIZ.PRODUCT_CONTENT PC INNER JOIN OFBIZ.CONTENT CO ON PC.CONTENT_ID = CO.CONTENT_ID) LEFT OUTER JOIN OFBIZ.DATA_RESOURCE DR ON CO.DATA_RESOURCE_ID = DR.DATA_RESOURCE_ID WHERE ((PC.PRODUCT_ID = ? AND PC.PRODUCT_CONTENT_TYPE_ID = ?)) [90098-240] at org.h2.message.DbException.getJdbcSQLException(DbException.java:690) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:223) at org.h2.message.DbException.get(DbException.java:199) at org.h2.message.DbException.get(DbException.java:188) at org.h2.engine.SessionLocal.getDatabase(SessionLocal.java:674) at org.h2.command.Prepared.getDatabase(Prepared.java:489) at org.h2.command.Prepared.<init>(Prepared.java:82) at org.h2.command.query.Query.<init>(Query.java:172) at org.h2.command.query.Select.<init>(Select.java:164) at org.h2.command.Parser.parseSelect(Parser.java:2800) at org.h2.command.Parser.parseQueryPrimary(Parser.java:2695) at org.h2.command.Parser.parseQueryTerm(Parser.java:2550) at org.h2.command.Parser.parseQueryExpressionBody(Parser.java:2529) at org.h2.command.Parser.parseQueryExpressionBodyAndEndOfQuery(Parser.java:2522) at org.h2.command.Parser.parseQueryExpression(Parser.java:2515) at org.h2.command.Parser.parseQuery(Parser.java:2482) at org.h2.command.Parser.parsePrepared(Parser.java:613) at org.h2.command.Parser.parse(Parser.java:584) at org.h2.command.Parser.parse(Parser.java:559) at org.h2.command.Parser.prepareCommand(Parser.java:487) at org.h2.engine.SessionLocal.prepareLocal(SessionLocal.java:647) at org.h2.engine.SessionLocal.prepareCommand(SessionLocal.java:563) at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1160) at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:93) at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:686) at org.apache.commons.dbcp2.DelegatingConnection.prepareStatement(DelegatingConnection.java:764) at org.apache.commons.dbcp2.DelegatingConnection.prepareStatement(DelegatingConnection.java:764) at org.apache.ofbiz.entity.jdbc.SQLProcessor.prepareStatement(SQLProcessor.java:381) ... 8 more 2026-05-20 09:39:03,616 |xer_default_products |ProductDocument |E| null org.apache.ofbiz.entity.transaction.GenericTransactionException: System error, could not rollback transaction: javax.transaction.xa.XAException: Rollback failed. (Rollback failed.) at org.apache.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:350) at org.apache.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:304) at org.apache.ofbiz.entity.GenericDelegator.findList(GenericDelegator.java:1718) at org.apache.ofbiz.entity.util.EntityQuery.query(EntityQuery.java:467) at org.apache.ofbiz.entity.util.EntityQuery.queryList(EntityQuery.java:396) at org.apache.ofbiz.content.search.ProductDocument.prepareDocument(ProductDocument.java:280) at org.apache.ofbiz.content.search.DocumentIndexer.run(DocumentIndexer.java:98) Caused by: javax.transaction.xa.XAException: Rollback failed. at org.apache.commons.dbcp2.managed.LocalXAConnectionFactory$LocalXAResource.newXAException(LocalXAConnectionFactory.java:183) at org.apache.commons.dbcp2.managed.LocalXAConnectionFactory$LocalXAResource.rollback(LocalXAConnectionFactory.java:248) at org.apache.geronimo.transaction.manager.RollbackTask.run(RollbackTask.java:64) at org.apache.geronimo.transaction.manager.TransactionImpl.rollbackResources(TransactionImpl.java:604) at org.apache.geronimo.transaction.manager.TransactionImpl.rollback(TransactionImpl.java:498) at org.apache.geronimo.transaction.manager.TransactionManagerImpl.rollback(TransactionManagerImpl.java:276) at org.apache.ofbiz.entity.transaction.TransactionUtil.rollback(TransactionUtil.java:338) ... 6 more Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database is already closed (to disable automatic closing at VM shutdown, add ";DB_CLOSE_ON_EXIT=FALSE" to the db URL) [90121-240] at org.h2.message.DbException.getJdbcSQLException(DbException.java:690) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:223) at org.h2.message.DbException.get(DbException.java:199) at org.h2.message.DbException.get(DbException.java:188) at org.h2.jdbc.JdbcConnection.checkClosed(JdbcConnection.java:1418) at org.h2.jdbc.JdbcConnection.rollback(JdbcConnection.java:509) at org.apache.commons.dbcp2.managed.LocalXAConnectionFactory$LocalXAResource.rollback(LocalXAConnectionFactory.java:246) ... 11 more 2026-05-20 09:39:03,616 |xer_default_products |DocumentIndexer |I| DocumentIndexer_default_products: deleted Lucene document: productId:GZ-5005 > Task :loadAll To fix the above errors, I have added one parameter in h2 URI because console error recommends adding this value in the URI: DB_CLOSE_ON_EXIT=FALSE
1 parent b914e87 commit 28a54ec

1 file changed

Lines changed: 4 additions & 4 deletions

File tree

framework/entity/config/entityengine.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ access. For a detailed description see the core/docs/entityconfig.html file.
179179

180180
<inline-jdbc
181181
jdbc-driver="org.h2.Driver"
182-
jdbc-uri="jdbc:h2:file:./runtime/data/h2/ofbiz;AUTO_SERVER=TRUE;LOCK_TIMEOUT=60000;INIT=CREATE SCHEMA IF NOT EXISTS OFBIZ\;SET SCHEMA OFBIZ"
182+
jdbc-uri="jdbc:h2:file:./runtime/data/h2/ofbiz;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS OFBIZ\;SET SCHEMA OFBIZ"
183183
jdbc-username="ofbiz"
184184
jdbc-password-lookup="h2-ofbiz"
185185
isolation-level="ReadCommitted"
@@ -207,7 +207,7 @@ access. For a detailed description see the core/docs/entityconfig.html file.
207207

208208
<inline-jdbc
209209
jdbc-driver="org.h2.Driver"
210-
jdbc-uri="jdbc:h2:file:./runtime/data/h2/ofbiz;AUTO_SERVER=TRUE;LOCK_TIMEOUT=60000;INIT=CREATE SCHEMA IF NOT EXISTS ODBC\;SET SCHEMA ODBC"
210+
jdbc-uri="jdbc:h2:file:./runtime/data/h2/ofbiz;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS ODBC\;SET SCHEMA ODBC"
211211
jdbc-username="ofbiz"
212212
jdbc-password-lookup="h2-ofbizodbc"
213213
isolation-level="ReadCommitted"
@@ -240,7 +240,7 @@ access. For a detailed description see the core/docs/entityconfig.html file.
240240
<read-data reader-name="ext-demo"/>
241241
<inline-jdbc
242242
jdbc-driver="org.h2.Driver"
243-
jdbc-uri="jdbc:h2:file:./runtime/data/h2/ofbiz;AUTO_SERVER=TRUE;LOCK_TIMEOUT=60000;INIT=CREATE SCHEMA IF NOT EXISTS OLAP\;SET SCHEMA OLAP"
243+
jdbc-uri="jdbc:h2:file:./runtime/data/h2/ofbiz;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS OLAP\;SET SCHEMA OLAP"
244244
jdbc-username="ofbiz"
245245
jdbc-password-lookup="h2-ofbizolap"
246246
isolation-level="ReadCommitted"
@@ -273,7 +273,7 @@ access. For a detailed description see the core/docs/entityconfig.html file.
273273

274274
<inline-jdbc
275275
jdbc-driver="org.h2.Driver"
276-
jdbc-uri="jdbc:h2:file:./runtime/data/h2/ofbiz;AUTO_SERVER=TRUE;LOCK_TIMEOUT=60000;INIT=CREATE SCHEMA IF NOT EXISTS TENANT\;SET SCHEMA TENANT"
276+
jdbc-uri="jdbc:h2:file:./runtime/data/h2/ofbiz;DB_CLOSE_ON_EXIT=FALSE;INIT=CREATE SCHEMA IF NOT EXISTS TENANT\;SET SCHEMA TENANT"
277277
jdbc-username="ofbiz"
278278
jdbc-password-lookup="h2-ofbiztenant"
279279
isolation-level="ReadCommitted"

0 commit comments

Comments
 (0)