Кварц 2.2.2: org.quartz.impl.jdbcjobstore.LockException: сбой при получении блокировки строки БД: ORA-00942: таблица или представление не существует - PullRequest
0 голосов
/ 16 июня 2019

Я использую Quartz Scheduler 2.2.2.

Я создал схему с именем 'SCHEDULER_DEV' в базе данных Oracle.

СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ SCHEDULER_DEV, ОПРЕДЕЛЯЕМОГО SCHEDULER_DEV ПО УМОЛЧАНИЮ TABLESPACE USER TEMPORARY TABLESPACE TEMP QUOTA, НЕОГРАНИЧЕННЫЙ НА ПОЛЬЗОВАТЕЛЕЙ

Я предоставил ниже гранты для этой схемы - создать / изменить сеанс, создать таблицу, представление, последовательность, синоним, тип и процедуру.

В таблицу qrtz_locks я добавил 2 записи:

INSERT INTO QRTZ_LOCKS (SCHED_NAME, LOCK_NAME) VALUES ('QuartzScheduler', 'STATE_ACCESS');

INSERT INTO QRTZ_LOCKS (SCHED_NAME, LOCK_NAME) VALUES ('QuartzScheduler', 'TRIGGER_ACCESS');

Я настроил свой web.xml, как показано ниже:

*>

    <listener-class>org.quartz.ee.servlet.QuartzInitializerListener</listener-class>
</listener>
<context-param>
    <param-name>config-file</param-name>
    <param-value>quartz.properties</param-value>
</context-param>
<context-param>
    <param-name>shutdown-on-unload</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>wait-on-shutdown</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>start-on-load</param-name>
    <param-value>true</param-value>
</context-param>
<context-param>
    <param-name>start-delay-seconds</param-name>
    <param-value>10</param-value>
</context-param>*

*

Мой файл quartz.properties включает, как показано ниже, вместе с другими парами ключ-значение:

org.quartz.scheduler.instanceName = QuartzScheduler org.quartz.jobStore.dataSource = SchedulerDS org.quartz.jobStore.tablePrefix = SCHEDULER_DEV.QRTZ_ org.quartz.dataSource.SchedulerDS.jndiURL = JDBC / schedulerds org.quartz.dataSource.SchedulerDS.java.naming.factory.initial = weblogic.jndi.WLInitialContextFactory

Когда я запускаю свою страницу, я получаю следующую ошибку:

org.quartz.impl.jdbcjobstore.LockException: сбой при получении блокировки строки БД: ORA-00942: таблица или представление не существует [см. Вложенные исключение: java.sql.SQLSyntaxErrorException: ORA-00942: таблица или представление не существует] в org.quartz.impl.jdbcjobstore.StdRowLockSemaphore.executeSQL (StdRowLockSemaphore.java:157) в org.quartz.impl.jdbcjobstore.DBSemaphore.obtainLock (DBSemaphore.java:113) в org.quartz.impl.jdbcjobstore.JobStoreSupport.doCheckin (JobStoreSupport.java:3270) в org.quartz.impl.jdbcjobstore.JobStoreSupport $ ClusterManager.manage (JobStoreSupport.java:3870) в org.quartz.impl.jdbcjobstore.JobStoreSupport $ ClusterManager.run (JobStoreSupport.java:3907)

1 Ответ

0 голосов
/ 17 июня 2019

У меня проблема с гостем - ваша конфигурация здесь: org.quartz.jobStore.tablePrefix = SCHEDULER_DEV.QRTZ_

Попробуйте изменить на: org.quartz.jobStore.tablePrefix = QRTZ_ и покажите мне, если это работает.

P / s: Если вы используете другую схему Oracle, проверьте, есть ли у вас разрешение (выбрать, обновить, вставить, удалить) для SCHEDULER_DEV для кварцевых таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...