Database deadlock issue with large solution deployments

Draft comment:
This topic is shared by BAW, CP4BA. Last updated on 2025-03-13 12:15
Draft comment:
This topic was viewed 11 times since its publication
When you try to deploy a large solution, a database deadlock error might be generated in the IBM Content Cortex server error log.

Symptoms

You try to deploy a large solution and a database deadlock error is generated in the IBM Content Cortex server error log, such as the following error: 013-07-12T16:48:33.293 19F319F3 ENG FNRCE0019E - ERROR method name: throwEngineException principal name: Administrator Global Transaction: true User Transaction: false Exception Info: The operation could not be completed due to a deadlock error. A retry might be appropriate. ObjectStore: "CMTOS", SQL: ""ALTER TABLE CMTOS.Container ADD (u2586_dub_hvlointeger67 number(10) NULL) "" com.filenet.api.exception.EngineRuntimeException: FNRCE0019E: E_DEADLOCK_ERROR: The operation could not be completed due to a deadlock error. A retry might be appropriate. ObjectStore: "CMTOS", SQL: ""ALTER TABLE CMTOS.Container ADD (u2586_dub_hvlointeger67 number(10) NULL) "" failedBatchItem=42
at com.filenet.engine.dbpersist.DBOracleContext.throwEngineException(DBOracleContext.java:335)
at com.filenet.engine.dbpersist.DBExecutionElement.execute(DBExecutionElement.java:296)
at com.filenet.engine.dbpersist.DBExecutionContext.getNextResult(DBExecutionContext.java:106)
at com.filenet.engine.dbpersist.DBStatementList.executeStatements(DBStatementList.java:161)
at com.filenet.engine.dbpersist.DBStatementList.getNextResult(DBStatementList.java:601)
at com.filenet.engine.dbpersist.DBStatementAlter.process(DBStatementAlter.java:834)
at com.filenet.engine.dbpersist.DBStatementAlter.process(DBStatementAlter.java:778)

Causes

The system determines whether a solution is active by periodically checking the LastModified time of the solution folder. A keep-alive interval specifies how often solution activity is checked. The default keep-alive interval of 2 seconds is too small for large solution deployments.

Resolving the problem

For large solution deployments, increase the value of the keep-alive interval from 2 seconds to 30 seconds. The value is specified in milliseconds: 30000 is 30 seconds.

To increase the keep-alive interval to 30 seconds:

  1. Set the following JVM parameter on the workflow server:
    -Dcom.ibm.casemgmt.config.keep.alive.interval=30000
  2. Restart the JVM for your changes to take effect.