无法在Quartz.NET中使用AdoJobStore

时间:2013-11-28 16:15:34

标签: c# scheduler quartz.net

我正在尝试使用AdoJobStore使用Quartz API调度作业。

这是应用程序配置文件的内容(作为Windows服务的一部分提供)。

<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="quartz"
             type="System.Configuration.NameValueSectionHandler" />
  </configSections>
  <quartz>
    <add key="quartz.scheduler.instanceName" value="ServerScheduler" />
    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
    <add key="quartz.threadPool.threadCount" value="10" />
    <add key="quartz.threadPool.threadPriority" value="2" />
    <add key="quartz.jobStore.misfireThreshold" value="60000" />
    <add key="quartz.jobStore.useProperties" value="true" />
    <add key="quartz.jobStore.clustered" value="true" />
    <add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" />
    <add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" />
    <add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.StdAdoDelegate, Quartz" />
    <add key="quartz.jobStore.dataSource" value="quartzDS" />
    <add key="quartz.dataSource.quartzDS.connectionString" value="Data Source=LocalDB;User ID=wesly;Password=XXXXX" />
    <add key="quartz.dataSource.quartzDS.provider" value="OracleClient-20 " />
   </quartz>
</configuration>

当我启动Windows服务时,我收到以下错误格式化并写入日志:

  

异常来源:Quartz异常方法:Quartz.IScheduler   Instantiate()异常StackTrace:at   Quartz.Impl.StdSchedulerFactory.Instantiate()in   C:\工作\开源\ Quartz.NET \ quartznet的\ src \水晶\默认地将Impl \ StdSchedulerFactory.cs:行   1044在Quartz.Impl.StdSchedulerFactory.GetScheduler()中   C:\工作\开源\ Quartz.NET \ quartznet的\ src \水晶\默认地将Impl \ StdSchedulerFactory.cs:行   1118在SampleJobScheduling.ScheduleJob.Run()中   C:\ Users \ jwesly \ documents \ visual studio   2010 \项目\ SampleJobScheduling \ SampleJobScheduling \ ScheduleJob.cs:行   25异常消息:无法初始化DataSource:quartzDS

我正在使用Oracle 11g Express Edition。架构是WESLY

请帮助!!!

2 个答案:

答案 0 :(得分:2)

我在配置mssql时遇到了同样的问题。 旧设置如下:

["quartz.dataSource.default.provider"] = "SqlServer-20"

我必须更改为:

["quartz.dataSource.default.provider"] = "SqlServer",
["quartz.serializer.type"] = "binary"

感谢nimeresam

答案 1 :(得分:1)

使用quartz.net的第3版后,我遇到了这个例外 根据第3版的BREAKING CHANGES;提供者类型被简化 它无法读取旧的提供程序类型,因此数据源无法初始化 你应该改变:

<add key="quartz.dataSource.quartzDS.provider" value="OracleClient-20 "/>

为:

<add key="quartz.dataSource.quartzDS.provider" value="OracleODP" />

你应该添加序列化器类型属性,如:

<add key="quartz.serializer.type" value="binary" />

因为您没有使用 RamJobStore 在这里阅读:Version Migration Guide