【问题标题】:Connecting Quartz to MS Sql Server将 Quartz 连接到 MS Sql 服务器
【发布时间】:2014-02-26 16:24:39
【问题描述】:

我是 Quartz Job Scheduler 的新手,我可能会问一些愚蠢的问题,但是...我无法将 Quartz.Server.2010 连接到 MS Sql Server 2012。

我创建了几个运行良好的作业,但无法创建与 SQL Server 的连接。

我已经在quartz.config 文件中编写了代码,但我不断收到无法解决的错误:

“服务异常终止,Topshelf.ServiceBuilderException:创建服务时发生异常:QuartzServer ---> Quartz.SchedulerException: Provider not specified for DataSource: default”

即使我在 App.config 文件中设置了提供程序:

我的问题可能是什么?

【问题讨论】:

    标签: quartz-scheduler quartz.net


    【解决方案1】:

    短版:

    你有这个吗?

     <add key="quartz.dataSource.default.provider" value="SqlServer-20"/>
    

    加长版:

    “默认”这个词没有特别的含义。 在下面的 .config 中,我使用了“MySqlServerFullVersion”。

    但下面是一个功能齐全的 Quartz.Impl.AdoJobStore.JobStoreTX

    <quartz>
    
        <add key="quartz.scheduler.instanceName" value="ExampleDefaultQuartzSchedulerFromConfigFileSqlServer"/>
        <add key="quartz.scheduler.instanceId" value="instance_one"/>
        <add key="quartz.threadPool.threadCount" value="10"/>
        <add key="quartz.threadPool.threadPriority" value="Normal"/>
    
        <!-- 
        org.quartz.scheduler.idleWaitTime
        Is the amount of time in milliseconds that the scheduler will wait before re-queries for available triggers when the scheduler is otherwise idle. Normally you should not have to 'tune' this parameter, unless you're using XA transactions, and are having problems with delayed firings of triggers that should fire immediately.
        It defaults to every 30 seconds until it finds a trigger. Once it finds any triggers, it gets the time of the next trigger to fire and stops checking until then, unless a trigger changes.   -->
        <add key="quartz.scheduler.idleWaitTime" value ="5000"/>
    
        <!-- Misfire : see http://nurkiewicz.blogspot.com/2012/04/quartz-scheduler-misfire-instructions.html  -->
        <add key="quartz.jobStore.misfireThreshold" value="60000"/>
        <add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz"/>
        <add key="quartz.jobStore.tablePrefix" value="QRTZ_"/>
        <add key="quartz.jobStore.clustered" value="false"/>
        <add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz"/>
    
    
        <add key="quartz.jobStore.dataSource" value="MySqlServerFullVersion"/>
    
        <!-- 
        <add key="quartz.jobStore.dataSource" value="MySqlServerCe40"/>
        -->
        <!-- 
        <add key="quartz.jobStore.dataSource" value="MySqlServerCe351"/>
        -->
    
    
    
        <add key="quartz.dataSource.MySqlServerFullVersion.connectionString" value="Server=MyServer\MyInstance;Database=MyQuartzDB;Trusted_Connection=True;Application Name='quartz_config';"/>
        <add key="quartz.dataSource.MySqlServerFullVersion.provider" value="SqlServer-20"/>
    
    
        <!-- 
        <add key="quartz.dataSource.MySqlServerCe40.connectionString" value="Data Source=C:\quartznet\quartz2-sqlce4.sdf;Persist Security Info=False;"/>
        <add key="quartz.dataSource.MySqlServerCe40.provider" value="SqlServerCe-400"/>
        -->
    
        <!-- 
        <add key="quartz.dataSource.MySqlServerCe351.connectionString" value="Data Source=C:\quartznet\quartz2-sqlce35.sdf;Persist Security Info=False;"/>
        <add key="quartz.dataSource.MySqlServerCe351.provider" value="SqlServerCe-351"/>
        -->
    
    
    
    </quartz>
    

    PS

    您创建了一个数据库,对吗?

    https://github.com/MassTransit/MassTransit-Quartz/blob/master/setup_sql_server.sql

    或这里:

    https://github.com/quartznet/quartznet/blob/master/database/tables/tables_sqlServer.sql

    如果上述 URL(到 setup_sql_server.sql)不复存在,您可以在互联网上搜索以下文本,很可能会找到 .sql。

    ALTER TABLE [dbo].[QRTZ_TRIGGERS] 删除约束 FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS

    【讨论】:

      猜你喜欢
      • 2013-06-17
      • 1970-01-01
      • 2023-03-11
      • 2016-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      相关资源
      最近更新 更多