问题描述
我正在执行以下操作-org.quartz.impl.jdbcjobstore.LockException:无法获取数据库行锁:ORA-00942:表或视图不存在[请参见嵌套异常:java.sql.SQLException:ORA-00942:表或视图不存在 ]。
我已经使用了相同的代码,但是数据库是Mysql ,但是突然之间,我们决定将数据库迁移到ORACLE。
而且我们从Java方面超越了Exception。
根据我的观点,我认为当最初的作业运行时,它将在数据库表中输入以下条目:PREFIX_LOCKS
STATE_ACCESS TRIGGER_ACCESS
自动,但是由于ORA-00942,它在这里尝试失败。
现在,我的Quartz Config文件如下所示:
#=====================================
# Configure Instance
#=====================================
org.quartz.scheduler.instanceName = MyClusteredScheduler
org.quartz.scheduler.instanceId = AUTO
#===================================
# Configure ThreadPool
#===================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 25
org.quartz.threadPool.threadPriority = 5
#===================================
# Configure JobStore
#===================================
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.tablePrefix = TABLE_PREFIX_NAME
org.quartz.jobStore.dataSource = customDataSourceName
org.quartz.jobStore.isClustered = true
org.quartz.jobStore.clusterCheckinInterval = 20000
#===================================
# Configure Datasources
#====================================
org.quartz.dataSource.customDataSourceName.jndiURL =
java:comp/env/jdbc/SomeName
org.quartz.dataSource.customDataSourceName.maxConnections = 5
org.quartz.dataSource.customDataSourceName.validationQuery =
select 0 from dual
#================== END OF FILE ==========
注意:我的Oracle数据库具有石英和oracle数据库所需的所有足够的表,并已分配到Schema明智的数据库中(可能是原因)。
有人能告诉我发生了什么事吗?
1楼
这个问题解决了。
问题是,我试图在schedule(..)方法之前调用Scheduler的start()方法。 。 我只是交换那个命令,然后同样地做,
1. schedule job
2. start method invoke
以上两种情况都包含在try .. catch中。
谢谢。