Starting with appNG 1.23.0, the Scheduler uses a DataSource with autoCommit=false (see APPNG-2448).
This causes a deadlock while obtaining a lock:
log4j: 2022-08-17 13:48:00,625 ERROR ["http-nio-8080-exec-9"] [ 65E6B3D701ABF3CF0A8FE0E5BC6D9CE2 "admin@en" /manager/appng/appng-manager/sites] quartz.LocalDataSourceJobStore: ClusterManager: Error managing cluster: Failure obtaining db row lock: Lock request time out period exceeded. org.quartz.impl.jdbcjobstore.LockException: Failure obtaining db row lock: Lock request time out period exceeded. [See nested exception: com.microsoft.sqlserver.jdbc.SQLServerException: Lock request time out period exceeded.] at org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.executeSQL(StdRowLockSemaphore.java:184) at org.quartz.impl.jdbcjobstore.DBSemaphore.obtainLock(DBSemaphore.java:113) at org.quartz.impl.jdbcjobstore.JobStoreSupport.doCheckin(JobStoreSupport.java:3343) at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.manage(JobStoreSupport.java:3935) at org.quartz.impl.jdbcjobstore.JobStoreSupport$ClusterManager.initialize(JobStoreSupport.java:3920) at org.quartz.impl.jdbcjobstore.JobStoreSupport.schedulerStarted(JobStoreSupport.java:692) at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:539) at org.quartz.impl.StdScheduler.start(StdScheduler.java:142) at org.appng.application.scheduler.business.SchedulingController.start(SchedulingController.java:90)
(A lockTimeout must be set in the JDBC-URL to force this exception, otherwhise the thread just runs forever)
- is caused by
-
APPNG-2448 Setting properties for HikariCPConfigurer in PlatformConfig has no effect
- Done
- relates to
-
SCHED-44 Rework transaction management for quartz scheduler
- Done