2016-04-02 6 views
0

Ich benutze Quartz.NET 2.3.2 - Clustered-Modus mit ADOJobStore. Es hat 8 Jobs mit einem einfachen Trigger für jeden. Alle Jobs sind mit [DisallowConcurrentExecution] konfiguriert.Quartz.NET (Clustered) mit ADOJobStore gehen zu TRIGGER_STATE FEHLER ohne Fehler protokolliert

Das Problem, mit dem ich konfrontiert bin, ist - Nach ein paar Stunden Laufzeit (manchmal 30 Minuten) gehen einige der Jobs in TRIGGER_STATE FEHLER (abgefragt QRTZ_TRIGGERS Tabellen) ohne protokollieren Fehlerinformationen in Quarz Protokolldatei. Pl finden Sie die relevanten Abschnitte von quartz.server.exe.config unten.

Auch derzeit dieses Problem zu isolieren - Ich führe Quartz derzeit nur von einem Server (neu erstellt Schema).

Um weitere Informationen hinzuzufügen - Alle Jobs "Execute" -Methode haben einen Haupt-Try-Catch, um jede Ausnahme Quarz-Core zu erreichen. Lassen Sie mich wissen, ob dies geändert werden muss. Ich habe gelesen, dass "JobExecutionExecution" in Job.Execute Fangbereich verwendet. Ich bin mir nicht sicher über seine Verwendung.

<common> 
     <logging> 
      <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net1213"> 
      <arg key="configType" value="INLINE"/> 
      </factoryAdapter> 
     </logging> 
    </common> 

<log4net> 
    <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%d [%t] %-5p %l - %m%n"/> 
    </layout> 
    </appender> 
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender"> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%d [%t] %-5p %l - %m%n"/> 
    </layout> 
    </appender> 
    <appender name="QuartzInternalLog" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="Trace/QuartzInternalLogFile_%date{yyyyMMdd}.txt"/> 
    <appendToFile value="true"/> 
    <maximumFileSize value="1024KB"/> 
    <maxSizeRollBackups value="1000" /> 
    <rollingStyle value="Size"/> 
    <datePattern value="yyyyMMdd" /> 
    <staticLogFileName value="true" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%d{HH:mm:ss} [%t] %-5p %c - %m%n"/> 
    </layout> 
    </appender> 
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file type="log4net.Util.PatternString" value="Log/ABCXYZIntService_%date{yyyyMMdd}.log" /> 
    <appendToFile value="true" /> 
    <maxSizeRollBackups value="2" /> 
    <maximumFileSize value="1MB" /> 
    <rollingStyle value="Date" /> 
    <datePattern value="yyyyMMdd" /> 
    <staticLogFileName value="true" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" /> 
    </layout> 
    </appender> 
    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender"> 
    <to value="[email protected]" /> 
    <from value="[email protected]" /> 
    <subject value="Sample Subject" /> 
    <smtpHost value="smtp.abc.com" /> 
    <bufferSize value="512" /> 
    <lossy value="true" /> 
    <evaluator type="log4net.Core.LevelEvaluator"> 
     <threshold value="WARN"/> 
    </evaluator> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%newline%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
    </appender> 

    <logger name="ErrorLogger"> 
    <level value="All" /> 
    <appender-ref ref="LogFileAppender" /> 
    </logger> 
    <logger name="EmailLogger"> 
    <level value="Error" /> 
    <appender-ref ref="SmtpAppender" /> 
    </logger> 


    <logger name="Quartz"> 
    <level value="DEBUG" /> 
    <appender-ref ref="QuartzInternalLog" /> 
    </logger> 

</log4net> 
<!-- 
    We use quartz.config for this server, you can always use configuration section if you want to. 
    Configuration section has precedence here. 
    --> 
<quartz> 
    <add key="quartz.checkConfiguration" value="false"/> 
    <add key="quartz.server.serviceName" value="ABC"/> 
    <add key="quartz.server.serviceDisplayName" value="ABC"/> 
    <add key="quartz.server.serviceDescription" value="ABC"/> 
    <add key="quartz.scheduler.instanceName" value="ABCScheduler"/> 
    <add key="quartz.scheduler.instanceId" value = "AUTO"/> 
    <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.plugin.xml.type" value="Quartz.Plugin.Xml.XMLSchedulingDataProcessorPlugin, Quartz"/> 
    <add key="quartz.plugin.xml.fileNames" value="~/quartz_jobs.xml"/> 
    <add key="quartz.scheduler.exporter.type" value="Quartz.Simpl.RemotingSchedulerExporter, Quartz"/> 
    <add key="quartz.scheduler.exporter.port" value="555"/> 
    <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.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz"/> 
    <add key="quartz.jobStore.dataSource" value="default"/> 
    <add key="quartz.jobStore.tablePrefix" value="QRTZ_"/> 
    <add key="quartz.jobStore.clustered" value="true"/> 
    <add key="quartz.jobStore.lockHandler.type" value="Quartz.Impl.AdoJobStore.SimpleSemaphore, Quartz"/> 
    <add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.StdAdoDelegate, Quartz"/> 
    <add key="quartz.dataSource.default.provider" value="SqlServer-20"/> 
    <add key="quartz.jobStore.useProperties" value="true"/> 
    <add key="quartz.jobStore.selectWithLockSQL" value="SELECT * FROM {0} LOCKS UPDLOCK WHERE LOCK_NAME = @ lockName"/> 
    <add key="quartz.dataSource.default.connectionStringName" value="QuartzStore"/> 
    <add key="quartz.dataSource.default.connectionString" value="Data Source=MyServer;Initial Catalog=MyDB;User ID=test;Password=test"/> 
</quartz> 

<appSettings> 
     <add key="log4net.Internal.Debug" value="true"/> 
</appSettings> 

Antwort

0

Ich habe das Problem herausgefunden. Dieses Problem trat in unserer UAT-Umgebung auf. Es gab einen weiteren Quartz-Job-Dienst in der SIT-Umgebung, der auf die Quartz-Datenbank der UAT-Umgebung zeigte. Dies könnte zu Konflikten führen.

gab mir Diese URL einen Hinweis - http://forums.terracotta.org/forums/posts/list/4317.page

Verwandte Themen