# Deadlocks in Event Registry

**URL:** <https://forum.flowable.org/t/deadlocks-in-event-registry/7450>\
**Category:** Uncategorized\
**Created:** [February 3, 2021, 8:32pm UTC](https://forum.flowable.org/t/deadlocks-in-event-registry/7450 "2021-02-03T20:32:05Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![tjmac44](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.flowable.org/tjmac44/32/1716_2.png) [@tjmac44](https://forum.flowable.org/u/tjmac44)\
**Post date:** [February 3, 2021, 8:32pm UTC](https://forum.flowable.org/t/deadlocks-in-event-registry/7450/1 "2021-02-03T20:32:06Z")

</div>

Seeing some deadlocks in logs files for some event registry operatoins:

**`org.apache.ibatis.exceptions.PersistenceException: `**

**`### Error updating database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 69) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.`**

**`### The error may exist in org/flowable/eventsubscription/service/db/mapping/entity/EventSubscription.xml`**

**`### The error may involve org.flowable.eventsubscription.service.impl.persistence.entity.EventSubscriptionEntityImpl.deleteEventSubscriptionsForScopeIdAndType-Inline`**

**`### The error occurred while setting parameters`**

**`### SQL: delete from ACT_RU_EVENT_SUBSCR where SCOPE_ID_ = ? and SCOPE_TYPE_ = ?`**

**`### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 69) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.`**

**`at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) ~[mybatis-3.5.3.jar!/:3.5.3]`**

**`at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:199) ~[mybatis-3.5.3.jar!/:3.5.3]`**

**`at org.apache.ibatis.session.defaults.DefaultSqlSession.delete(DefaultSqlSession.java:212) ~[mybatis-3.5.3.jar!/:3.5.3]`**

**`at org.flowable.common.engine.impl.db.BulkDeleteOperation.execute(BulkDeleteOperation.java:34) ~[flowable-engine-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.common.engine.impl.db.DbSqlSession.flushBulkDeletes(DbSqlSession.java:620) ~[flowable-engine-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.common.engine.impl.db.DbSqlSession.flushDeletes(DbSqlSession.java:596) ~[flowable-engine-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.common.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:360) ~[flowable-engine-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.common.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:192) ~[flowable-engine-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.common.engine.impl.interceptor.CommandContext.close(CommandContext.java:61) ~[flowable-engine-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:81) ~[flowable-engine-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.common.spring.SpringTransactionInterceptor.lambda$execute$0(SpringTransactionInterceptor.java:56) ~[flowable-spring-common-6.5.0.jar!/:6.5.0]`**

**`at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140) ~[spring-tx-5.2.4.RELEASE.jar!/:5.2.4.RELEASE]`**

**`at org.flowable.common.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:56) ~[flowable-spring-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30) ~[flowable-engine-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56) ~[flowable-engine-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51) ~[flowable-engine-common-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.job.service.impl.asyncexecutor.ExecuteAsyncRunnable.executeJob(ExecuteAsyncRunnable.java:128) ~[flowable-job-service-6.5.0.jar!/:6.5.0]`**

**`at org.flowable.job.service.impl.asyncexecutor.ExecuteAsyncRunnable.run(ExecuteAsyncRunnable.java:116) ~[flowable-job-service-6.5.0.jar!/:6.5.0]`**

**`at org.springframework.cloud.sleuth.instrument.async.TraceRunnable.run(TraceRunnable.java:67) ~[spring-cloud-sleuth-core-2.2.2.RELEASE.jar!/:2.2.2.RELEASE]`**

**`at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]`**

**`at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]`**

**`at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]`**

**`Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Transaction (Process ID 69) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.`**

**`at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:262) ~[mssql-jdbc-8.2.2.jre11.jar!/:na]`**

**`at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1632) ~[mssql-jdbc-8.2.2.jre11.jar!/:na]`**

**`at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:600) ~[mssql-jdbc-8.2.2.jre11.jar!/:na]`**

**`at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:522) ~[mssql-jdbc-8.2.2.jre11.jar!/:na]`**

**`at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7225) ~[mssql-jdbc-8.2.2.jre11.jar!/:na]`**

**`at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:3053) ~[mssql-jdbc-8.2.2.jre11.jar!/:na]`**

**`at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:247) ~[mssql-jdbc-8.2.2.jre11.jar!/:na]`**

**`at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:222) ~[mssql-jdbc-8.2.2.jre11.jar!/:na]`**

**`at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:503) ~[mssql-jdbc-8.2.2.jre11.jar!/:na]`**

**`at com.zaxxer.hikari.pool.ProxyPreparedStatement.execute(ProxyPreparedStatement.java:44) ~[HikariCP-3.4.2.jar!/:na]`**

**`at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.execute(HikariProxyPreparedStatement.java) ~[HikariCP-3.4.2.jar!/:na]`**

**`at org.apache.ibatis.executor.statement.PreparedStatementHandler.update(PreparedStatementHandler.java:47) ~[mybatis-3.5.3.jar!/:3.5.3]`**

**`at org.apache.ibatis.executor.statement.RoutingStatementHandler.update(RoutingStatementHandler.java:74) ~[mybatis-3.5.3.jar!/:3.5.3]`**

**`at org.apache.ibatis.executor.SimpleExecutor.doUpdate(SimpleExecutor.java:50) ~[mybatis-3.5.3.jar!/:3.5.3]`**

**`at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117) ~[mybatis-3.5.3.jar!/:3.5.3]`**

**`at org.apache.ibatis.executor.CachingExecutor.update(CachingExecutor.java:76) ~[mybatis-3.5.3.jar!/:3.5.3]`**

**`at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197) ~[mybatis-3.5.3.jar!/:3.5.3]`**

**`... 20 common frames omitted`**

---

<div class="post-metadata">

**Author:** ![dcwik96](https://avatars.discourse-cdn.com/v4/letter/d/d07c76/32.png) [@dcwik96](https://forum.flowable.org/u/dcwik96)\
**Post date:** [February 4, 2021, 2:27pm UTC](https://forum.flowable.org/t/deadlocks-in-event-registry/7450/2 "2021-02-04T14:27:34Z")

</div>

For me it helps with deadlock to change database isolation level.

ALTER DATABASE [db]  
SET ALLOW\_SNAPSHOT\_ISOLATION ON

ALTER DATABASE [db]  
SET READ\_COMMITTED\_SNAPSHOT ON  
WITH ROLLBACK IMMEDIATE

[https://docs.camunda.org/manual/7.14/user-guide/process-engine/database/mssql-configuration/](https://docs.camunda.org/manual/7.14/user-guide/process-engine/database/mssql-configuration/)
