首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用AdoJobStores配置石英的LocalDb

用AdoJobStores配置石英的LocalDb
EN

Stack Overflow用户
提问于 2015-07-29 18:09:53
回答 1查看 2K关注 0票数 1

我在Server中使用石英 AdoJobStores已经很长时间了,没有任何问题。最近,我将Server数据库更改为LocalDB数据库,并收到以下异常:

代码语言:javascript
复制
Quartz.JobPersistenceException: Couldn't obtain job names: Invalid object name 'QRTZ_JOB_DETAILS'.
System.Data.SqlClient.SqlException: Invalid object name 'QRTZ_JOB_DETAILS'.
at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at Quartz.Impl.AdoJobStore.StdAdoDelegate.SelectJobsInGroup(ConnectionAndTransactionHolder conn, GroupMatcher`1 matcher) 
at Quartz.Impl.AdoJobStore.JobStoreSupport.GetJobNames(ConnectionAndTransactionHolder conn, GroupMatcher`1 matcher)

这是我的App.config上的Quartz配置部分:

代码语言:javascript
复制
<quartz>
<add key="quartz.scheduler.instanceName" value="RemoteServer" />
<add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
<add key="quartz.threadPool.threadCount" value="10" />
<add key="quartz.threadPool.threadPriority" value="Normal" />
<add key="quartz.scheduler.exporter.type" value="Quartz.Simpl.RemotingSchedulerExporter, Quartz" />
<add key="quartz.scheduler.exporter.port" value="9999" />
<add key="quartz.scheduler.exporter.bindName" value="QuartzScheduler" />
<add key="quartz.scheduler.exporter.channelType" value="tcp" />
<add key="quartz.scheduler.exporter.channelName" value="httpQuartz" />
<add key="quartz.scheduler.instanceId" value="instance_one" />
<add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" />
<add key="quartz.jobStore.useProperties" value="true" />
<add key="quartz.jobStore.dataSource" value="default" />
<add key="quartz.jobStore.tablePrefix" value="QRTZ_" />
<add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz" />
<add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz" />
<add key="quartz.dataSource.default.connectionString" value="Data Source=(localdb)\v11.0; Initial Catalog=Scheduling;MultipleActiveResultSets=true;Integrated Security=SSPI" />
<add key="quartz.dataSource.default.provider" value="SqlServer-20" />
<add key="quartz.jobStore.misfireThreshold" value="60000" />

数据库存在,我可以使用Navicat连接到它,但是没有任何表是空的。我想,也许我可以成为数据库提供者,并阅读页面Quartz.NET -第9课: JobStores,我发现这些都是可用的数据库提供程序:

  • SqlServer-20 -用于.NET框架2.0的SqlServer驱动程序
  • OracleODP-20 - Oracle的Oracle驱动程序
  • OracleODPManaged 1123-40 Oracle的Oracle 11托管驱动程序
  • OracleODPManaged 1211-40 Oracle的Oracle 12托管驱动程序
  • MySql-50 - MySQL连接器/.NET诉5.0 (.NET 2.0)
  • MySql-51 - MySQL连接器/:NET诉5.1 (.NET 2.0)
  • MySQL65号- MySQL连接器/:NET诉6.5 (.NET 2.0)
  • SQLite-10 - SQLite ADO.NET 2.0 Provider v. 1.0.56 (.NET 2.0)
  • 火鸟-201-火鸟ADO.NET 2.0提供者诉2.0.1 (.NET 2.0)
  • 火鸟-210-火鸟ADO.NET 2.0提供者诉2.1.0 (.NET 2.0)
  • PostgreSQL Npgsql-20

问题

  1. 我可以用LocalDB数据库和SQLServerDelegate吗?
  2. 由于Quartz没有LocalDB提供程序,所以出现了这个问题?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-02 18:38:31

如果通过SSMS ()连接到"(localdb)\v11.0“,...you可以创建一个新的db (例如QuartzDB)。然后运行脚本来创建它。

我找到了谷歌搜索的脚本

日历%5D%22

这是我发现的一个:

sqlServer.sql

或者这个:

sqlServer.sql

我认为您可以在数据库中使用石英库,使用SqlServer-20。注意,不是每个版本的sql-server都存在提供程序,'SqlServer-20‘以“最小公分母”的方式工作于多个版本的sql-server。

我觉得最重要的是..。石英库不创建表/ DDL,而是使用已经创建的DDL。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31708042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档