2013-07-04 10 views
5

私が午前トラブルと設定Quartz.NETはAdoJobStoreで動作するようにQuartz.NETを取得しようとしています。ここの他の質問のどれも私が問題になっているようには見えません。私は私が把握することはできませんGetScheduler()にしようとしたときしかし、私はエラーを取得しています、それはAdoJobStore設定せずに細かい作業が、最終的にはすべてのものを持続したい取得することができました。 ArgumentOutOfRangeExceptionあるSQL ServerのAdoJobStore

var config = (NameValueCollection) ConfigurationManager.GetSection("quartz"); 

ISchedulerFactory factory = new StdSchedulerFactory(config); 

// This is where an ArgumentOutOfRange exception occurs: 
IScheduler scheduler = factory.GetScheduler(); 

そして、私は取得していますエラー:

長は小さくすることはできません

は、ここに私の石英app.configセクションです:

<quartz> 
    <add key="quartz.scheduler.instanceName" value="XxxDefaultQuartzScheduler"/> 
    <add key="quartz.scheduler.instanceId" value="instance_one"/> 

    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz"/> 
    <add key="quartz.threadPool.threadCount" value="10"/> 
    <add key="quartz.threadPool.threadPriority" value="1"/> 

    <add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz"/> 
    <add key="quartz.jobStore.misfireThreshold" value="60000"/>  
    <add key="quartz.jobStore.dataSource" value="default"/> 
    <add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.SqlServerDelegate, Quartz"/>   
    <add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.UpdateLockRowSemaphore, Quartz"/> 
    <add key="quartz.jobStore.tablePrefix" value="QRTZ_"/> 

    <add key="quartz.dataSource.default.connectionString" value="Server=(local);Database=Quartz;UID=XXXX;PWD=XXXX"/> 
    <add key="quartz.dataSource.default.provider" value="SqlServer-20"/> 
    <add key="quartz.dataSource.useProperties" value="true"/> 
</quartz> 

そして、ここでは関係の初期化コードですゼロより。\ r \ nパラメータ名:長さ

私は、configセクションを確認することができ、コードのステップ実行

は正しく読み取れますし、私はダブル、トリプルは、スペルミスや設定のプロパティの間違った総額をチェック。私が持っているconnectionStringでデータベースにアクセスできることを確認しました。

イミディエイトウィンドウでコードをステップ実行し、工場出荷時の変数を調べているうちに気付いたことは、「AllSchedulers:Count = 0」と表示されていることです。それが私の問題の一部ならば。設定からGetScheduler()instanceNameを与えるためにしよう -

factory.GetScheduler("XxxDefaultQuartzScheduler") 

はどちらか動作しません。

私が間違っている/何をしないのですか?ご意見をお聞かせください。

+0

この質問に遭遇した人は、quartz.jobStore.lockHandler.type'プロパティを削除する必要があります。クォーツには効率の低いロック戦略が強制されます。あなたのログ –

答えて

8

は[OK]を、私自身の問題を考え出した - プロパティ水晶を。 のdataSource .usePropertiesは石英でなければなりません。 jobstore .useプロパティ