2014-11-03 2 views
1

Я пытаюсь включить постоянство работы с использованием плагина кварца для grails (http://grails.org/plugin/quartz), но каждый раз, когда я пытаюсь создать новое задание, он не может найти таблицу. Похоже, что плагин не создает таблицы.Таблицы не создаются для плагинов с кварцем с Grails 2.3.11

База данных, которую я использую в mysql, а версия моего grails - 2.3.11. Я попытался отразить конфигурацию, используемую в этом блоге (http://blog.robinpercy.com/2012/11/06/grails-clustered-quartz-configs-by-environment/), но таблицы не создаются.

Вот моя конфигурация кварца:

jdbcProps = { 
    scheduler.instanceName = "quartz" 
    scheduler.instanceId = "AUTO" 

    threadPool.class = "org.quartz.simpl.SimpleThreadPool" 
    threadPool.threadCount = 3 
    threadPool.threadPriority = 5 

    jobStore.misfireThreshold = 60000 

    jobStore.class = "org.quartz.impl.jdbcjobstore.JobStoreTX" 
    jobStore.driverDelegateClass = "org.quartz.impl.jdbcjobstore.MSSQLDelegate" 

    jobStore.useProperties = false 
    jobStore.tablePrefix = "qrtz_" 
    jobStore.isClustered = true 
    jobStore.clusterCheckinInterval = 5000 

    plugin.shutdownhook.class = "org.quartz.plugins.management.ShutdownHookPlugin" 
    plugin.shutdownhook.cleanShutdown = true 

} 

environments { 
development { 
    quartz { 
     autoStartup = true 
     jdbcStore = true 
     waitForJobsToCompleteOnShutdown = true 
     props(jdbcProps) 
    } 
} 
} 

Кварц может найти базу данных, указанные в моем файле DataSource.groovy, но он не может найти таблицы, необходимые.

dataSource { 
     pooled = true 
     driverClassName = "com.mysql.jdbc.Driver" 
     username = "root" 
     password = "root" 
     dbCreate = "create-drop" // one of 'create', 'create-drop','update' 
     url = "jdbc:mysql://localhost:3306/appDatabase?autoReconnect=true" 
     properties { 
      numTestsPerEvictionRun=3 
      testOnBorrow=true 
      testWhileIdle=true 
      testOnReturn=true 
      validationQuery="SELECT 1" 
     } 
    } 

Вот исключение

An error occurred while scanning for the next triggers to fire. 
org.quartz.JobPersistenceException: Couldn't acquire next trigger: Table 'appDatabase.qrtz_TRIGGERS' doesn't exist [See nested exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'appDatabase.qrtz_TRIGGERS' doesn't exist 

ли я что-то пропустил? Нужно ли вручную создавать таблицы или у меня есть некоторая ошибка конфигурации?

ответ

3

Я не использовал это некоторое время, но сомневаюсь, что он создаст для вас таблицы. Quartz distro поставляется с DDL для более чем 20 баз данных в каталоге docs/dbTables, поэтому вы должны использовать файл для своей базы данных и версии и настраивать по мере необходимости перед их запуском.

Несколько лет назад я провел конференцию, включающую кластерный кварц и включил автоматизированный способ использования файлов hibernate cfg.xml и hbm.xml для создания таблиц. Вы можете использовать download the sample app и использовать тот же подход - он все равно будет работать с Hibernate 3 и должен быть с Hibernate 4, но может потребоваться обновление до <!DOCTYPE ...> в xml.

Смежные вопросы