Load Testing Issues with Camunda REST API

We’re running a load test on our camunda based service using 2 threads firing start process requests using the REST API. We’ve applied the unique business key constraint on both history and execution tables as per the camunda documentation. The problem that we’re facing is that some requests fail and the log shows that it Is a violation of the business key unique constraint even when the business key is not present in the database in either the ACT_RU_EXECUTION table or the ACT_HI_PROCINST table.
But if we fire the same request again outside of the load test, without changing the businessKey or any other parameter, the request gets registered properly and returns a success and the processInstance for the given businessKey starts.

Could someone help us with why we might be getting this error when running a load test only?

Caused by: org.apache.ibatis.executor.BatchExecutorException: org.camunda.bpm.engine.impl.persistence.entity.HistoricProcessInstanceEntity.insertHistoricProcessInstanceEvent (batch index #4) failed. 3 prior sub executor(s) completed successfully, but will be rolled back. Cause: java.sql.BatchUpdateException: ORA-00001: unique constraint (SIWORKFLOW.ACT_UNIQ_HI_BUS_KEY) violated

    at org.apache.ibatis.executor.BatchExecutor.doFlushStatements(BatchExecutor.java:149)
    at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:129)
    at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:122)
    at org.apache.ibatis.executor.CachingExecutor.flushStatements(CachingExecutor.java:114)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.flushStatements(DefaultSqlSession.java:252)
    ... 100 more

Caused by: java.sql.BatchUpdateException: ORA-00001: unique constraint (SIWORKFLOW.ACT_UNIQ_HI_BUS_KEY) violated

Hi,

What version of Oracle are you running? Batch SQL processing does not work with Oracle versions less than 12…

regards

Rob

Hi The Oracle version we are using is 12.0

We disabled batch execution and it still gives the same unique business key constraint error. This issue comes when we are load testing with multiple threads. It works fine if it is a single thread.
Camunda Version: 7.14
Oracle version: 12
its a heterogenous setup with deployment aware property set as true

2021-01-04 16:05:48.565 ERROR [jio-ngo-workflow-people-core-service,8d592f4cf49aa51a,d3c4d3fe4b66043a,false] 10644 --- [nio-8600-exec-2] org.camunda.bpm.engine.context           : ENGINE-16004 Exception while closing command context: An exception occurred in the persistence layer. Please check the server logs for a detailed message and the entire exception stack trace.
 
org.camunda.bpm.engine.ProcessEngineException: An exception occurred in the persistence layer. Please check the server logs for a detailed message and the entire exception stack trace.
    at org.camunda.bpm.engine.impl.util.ExceptionUtil.wrapPersistenceException(ExceptionUtil.java:263)
    at org.camunda.bpm.engine.impl.db.EnginePersistenceLogger.flushDbOperationException(EnginePersistenceLogger.java:132)
    at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flushDbOperations(DbEntityManager.java:364)
    at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flushDbOperationManager(DbEntityManager.java:323)
    at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flush(DbEntityManager.java:295)
    at org.camunda.bpm.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:272)
    at org.camunda.bpm.engine.impl.interceptor.CommandContext.close(CommandContext.java:188)
    at org.camunda.bpm.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:119)
    at org.camunda.bpm.engine.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:46)
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
    at org.camunda.bpm.engine.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:44)
    at org.camunda.bpm.engine.impl.interceptor.ProcessApplicationContextInterceptor.execute(ProcessApplicationContextInterceptor.java:70)
    at org.camunda.bpm.engine.impl.interceptor.CommandCounterInterceptor.execute(CommandCounterInterceptor.java:35)
    at org.camunda.bpm.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)
    at org.camunda.bpm.engine.impl.ProcessInstantiationBuilderImpl.executeWithVariablesInReturn(ProcessInstantiationBuilderImpl.java:166)
    at org.camunda.bpm.engine.rest.sub.repository.impl.ProcessDefinitionResourceImpl.startProcessInstanceAtActivities(ProcessDefinitionResourceImpl.java:174)
    at org.camunda.bpm.engine.rest.sub.repository.impl.ProcessDefinitionResourceImpl.startProcessInstance(ProcessDefinitionResourceImpl.java:124)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191)
    at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:243)
    at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415)
    at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104)
    at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272)
    at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:316)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:298)
    at org.glassfish.jersey.internal.Errors.process(Errors.java:268)
    at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289)
    at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256)
    at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703)
    at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.camunda.bpm.engine.rest.filter.CacheControlFilter.doFilter(CacheControlFilter.java:45)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.camunda.bpm.engine.rest.filter.EmptyBodyFilter.doFilter(EmptyBodyFilter.java:99)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.boot.actuate.web.trace.servlet.HttpTraceFilter.doFilterInternal(HttpTraceFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:109)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:109)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:109)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:109)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.cloud.sleuth.instrument.web.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.java:50)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at brave.servlet.TracingFilter.doFilter(TracingFilter.java:99)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:114)
    at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:104)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:109)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:109)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:853)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1587)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
Caused by: org.camunda.bpm.engine.ProcessEngineException: ENGINE-03004 Exception while executing Database Operation 'INSERT HistoricProcessInstanceEventEntity[9bd3e81a-4e78-11eb-8636-005056838828]' with message '
### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (SIWORKFLOW.ACT_UNIQ_HI_BUS_KEY) violated
 
### The error may exist in org/camunda/bpm/engine/impl/mapping/entity/HistoricProcessInstance.xml
### The error may involve org.camunda.bpm.engine.impl.persistence.entity.HistoricProcessInstanceEntity.insertHistoricProcessInstanceEvent-Inline
### The error occurred while setting parameters
### SQL: insert into ACT_HI_PROCINST (       ID_,       PROC_INST_ID_,       BUSINESS_KEY_,       PROC_DEF_KEY_,       PROC_DEF_ID_,       START_TIME_,       END_TIME_,       REMOVAL_TIME_,       DURATION_,       START_USER_ID_,       START_ACT_ID_,       END_ACT_ID_,       SUPER_PROCESS_INSTANCE_ID_,       ROOT_PROC_INST_ID_,       SUPER_CASE_INSTANCE_ID_,       CASE_INST_ID_,       DELETE_REASON_,       TENANT_ID_,       STATE_     ) values (       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?     )
### Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (SIWORKFLOW.ACT_UNIQ_HI_BUS_KEY) violated
'. Flush summary: 
 [
  INSERT HistoricVariableInstanceEntity[9bd3e822-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableInstanceEntity[9bd65959-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableInstanceEntity[9bd6595b-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableInstanceEntity[9bd6595d-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableInstanceEntity[9bd6595f-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableInstanceEntity[9bd65961-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableInstanceEntity[9bd65963-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableInstanceEntity[9bd65965-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableInstanceEntity[9bd65967-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableInstanceEntity[9bd8c9a1-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableUpdateEventEntity[9bd65958-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableUpdateEventEntity[9bd6595a-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableUpdateEventEntity[9bd6595c-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableUpdateEventEntity[9bd6595e-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableUpdateEventEntity[9bd65960-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableUpdateEventEntity[9bd65962-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableUpdateEventEntity[9bd65964-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableUpdateEventEntity[9bd65966-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableUpdateEventEntity[9bd65968-4e78-11eb-8636-005056838828]
  INSERT HistoricVariableUpdateEventEntity[9bd8c9a2-4e78-11eb-8636-005056838828]
  INSERT HistoricTaskInstanceEventEntity[9bdd84aa-4e78-11eb-8636-005056838828]
  INSERT HistoricProcessInstanceEventEntity[9bd3e81a-4e78-11eb-8636-005056838828]
  INSERT HistoricIdentityLinkLogEventEntity[9bde6f1a-4e78-11eb-8636-005056838828]
  INSERT HistoricActivityInstanceEventEntity[Event_0yodkp8:9bd6598b-4e78-11eb-8636-005056838828]
  INSERT HistoricActivityInstanceEventEntity[L1APPROVAL:9bdd84a3-4e78-11eb-8636-005056838828]
  INSERT HistoricActivityInstanceEventEntity[PimValidation:9bd8c994-4e78-11eb-8636-005056838828]
  INSERT HistoricActivityInstanceEventEntity[end_start:9bde6f1d-4e78-11eb-8636-005056838828]
  INSERT HistoricActivityInstanceEventEntity[startDeciderPIM:9bd8c9a4-4e78-11eb-8636-005056838828]
  INSERT ExecutionEntity[9bd3e81a-4e78-11eb-8636-005056838828]
  INSERT TaskEntity[9bdd84aa-4e78-11eb-8636-005056838828]
  INSERT VariableInstanceEntity[9bd3e822-4e78-11eb-8636-005056838828]
  INSERT VariableInstanceEntity[9bd65959-4e78-11eb-8636-005056838828]
  INSERT VariableInstanceEntity[9bd6595b-4e78-11eb-8636-005056838828]
  INSERT VariableInstanceEntity[9bd6595d-4e78-11eb-8636-005056838828]
  INSERT VariableInstanceEntity[9bd6595f-4e78-11eb-8636-005056838828]
  INSERT VariableInstanceEntity[9bd65961-4e78-11eb-8636-005056838828]
  INSERT VariableInstanceEntity[9bd65963-4e78-11eb-8636-005056838828]
  INSERT VariableInstanceEntity[9bd65965-4e78-11eb-8636-005056838828]
  INSERT VariableInstanceEntity[9bd65967-4e78-11eb-8636-005056838828]
  INSERT VariableInstanceEntity[9bd8c9a1-4e78-11eb-8636-005056838828]
  INSERT IdentityLinkEntity[9bdd84b4-4e78-11eb-8636-005056838828]
]
    at org.camunda.bpm.engine.impl.db.EnginePersistenceLogger.flushDbOperationException(EnginePersistenceLogger.java:131)
    ... 99 common frames omitted
Caused by: org.apache.ibatis.exceptions.PersistenceException: 
### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (SIWORKFLOW.ACT_UNIQ_HI_BUS_KEY) violated
 
### The error may exist in org/camunda/bpm/engine/impl/mapping/entity/HistoricProcessInstance.xml
### The error may involve org.camunda.bpm.engine.impl.persistence.entity.HistoricProcessInstanceEntity.insertHistoricProcessInstanceEvent-Inline
### The error occurred while setting parameters
### SQL: insert into ACT_HI_PROCINST (       ID_,       PROC_INST_ID_,       BUSINESS_KEY_,       PROC_DEF_KEY_,       PROC_DEF_ID_,       START_TIME_,       END_TIME_,       REMOVAL_TIME_,       DURATION_,       START_USER_ID_,       START_ACT_ID_,       END_ACT_ID_,       SUPER_PROCESS_INSTANCE_ID_,       ROOT_PROC_INST_ID_,       SUPER_CASE_INSTANCE_ID_,       CASE_INST_ID_,       DELETE_REASON_,       TENANT_ID_,       STATE_     ) values (       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?,       ?     )
### Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (SIWORKFLOW.ACT_UNIQ_HI_BUS_KEY) violated
 
    at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.insert(DefaultSqlSession.java:184)
    at org.camunda.bpm.engine.impl.db.sql.DbSqlSession.executeInsertEntity(DbSqlSession.java:326)
    at org.camunda.bpm.engine.impl.db.sql.SimpleDbSqlSession.insertEntity(SimpleDbSqlSession.java:85)
    at org.camunda.bpm.engine.impl.db.AbstractPersistenceSession.executeDbOperation(AbstractPersistenceSession.java:44)
    at org.camunda.bpm.engine.impl.db.sql.SimpleDbSqlSession.executeDbOperations(SimpleDbSqlSession.java:60)
    at org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager.flushDbOperations(DbEntityManager.java:341)
    ... 98 common frames omitted
Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint (SIWORKFLOW.ACT_UNIQ_HI_BUS_KEY) violated
 
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:450)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:399)
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:1059)
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:522)
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:257)
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:587)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:225)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:53)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:943)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1150)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:4798)
    at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:4901)
    at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1385)
    at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44)
    at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java)
    at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47)
    at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74)
    at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50)
    at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)
    at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76)
    at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)
    ... 104 common frames omitted


Hi @Aluvala_Akhilesh
Can you add better formatting to your post - it’ll make it easier to read and answer.
You can find how to do that here.

@Niall Thanks. Edited my post

Hi,

From the error, it looks like a duplicate business key is detected in the history table and unique business keys have been enforced… Does this ‘SIWORKFLOW.ACT_UNIQ_HI_BUS_KEY’ resemble any custom DB code of yours? I looked through the Oracle create scripts and I couldn’t find a reference to this attribute…

Have you enabled unique business key constraints or your own unique constraints?
If so - are you confident your load test is generating unique keys?
If so - do you purge the DB tables between runs in case uniqueness is not enforced between runs?

regards

Rob