Java 选择更新时石英阻塞

Java 选择更新时石英阻塞,java,oracle,quartz-scheduler,Java,Oracle,Quartz Scheduler,我有一个大型应用程序,其中4个节点使用quartz来调度作业 我经常收到来自DB团队的邮件 '从QRTZ_锁中选择*,其中LOCK_NAME='TRIGGER_ACCESS'用于更新' 封锁了15-20分钟。有时几个小时。 我看到我的工作也在等待锁定 我们正在使用Quartz 1.8.3,这是一个非常旧的版本。这是我正在使用的石英设置 org.quartz.scheduler.instanceName = DefaultQuartzScheduler org.quartz.scheduler.i

我有一个大型应用程序,其中4个节点使用quartz来调度作业

我经常收到来自DB团队的邮件

'从QRTZ_锁中选择*,其中LOCK_NAME='TRIGGER_ACCESS'用于更新'

封锁了15-20分钟。有时几个小时。 我看到我的工作也在等待锁定

我们正在使用Quartz 1.8.3,这是一个非常旧的版本。这是我正在使用的石英设置

org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.instanceId = AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 25
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true

org.quartz.jobStore.misfireThreshold = 60000

org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreCMT

org.quartz.jobStore.driverDelegateClass=com.xyx.abc.common.scheduler.impl.CDAJDBCDelegate
org.quartz.jobStore.useProperties=false
org.quartz.jobStore.tablePrefix=QRTZ_
org.quartz.jobStore.isClustered=true
org.quartz.jobStore.clusterCheckinInterval = 20000

# these 3 are required by customSchedulerFactory class
org.quartz.dataSource.myDS.connectionProvider.class=com.xyz.abc.common.scheduler.impl.CustomPoolingConnectionProvider
org.quartz.jobStore.dataSource=myDS
org.quartz.jobStore.nonManagedTXDataSource=myDS
我尝试为Quartz启用调试日志。但是没有从中得到什么


有没有人面临过类似的问题?如何确保“选择更新”查询快速执行?

您可能可以忽略这些查询

许多年前,我站在这个问题的另一边。我是数据库团队中发现一个长时间运行的查询并要求Java开发人员修复它的人。我记不起细节了,但我记得有一个很好的解释,解释了为什么它是这样工作的,并且没有任何东西需要修复

当我们按
GV$SQL.eassed\u TIME
降序排序时,查询总是出现在性能报告中。但经过仔细检查,我们发现他们没有使用任何重要的资源。他们没有使用CPU、I/O或任何其他宝贵资源。这是极少数出现
eassed\u TIME
列有误导性的情况之一


我学会了忽略它们,并担心其他查询。

SELECT FOR UPDATE query会锁定QRTZ_locks表中的行,因此,如果该表中的这些行上存在并发的SELECT FOR UPDATE查询,那么这些并发查询将等待第一个SELECT FOR UPDATE查询通过以下方式释放这些行上的锁:在执行之前提交或回滚。同意@ivanzg。您的问题与Quartz无关,看起来您的数据库锁有问题。此问题已解决吗?