diff --git a/Service.EDMIService/EDMIService.vbproj b/Service.EDMIService/EDMIService.vbproj
index 477ac40b..45200c8f 100644
--- a/Service.EDMIService/EDMIService.vbproj
+++ b/Service.EDMIService/EDMIService.vbproj
@@ -194,6 +194,7 @@
+
diff --git a/Service.EDMIService/Scheduler/DatatableJob.vb b/Service.EDMIService/Scheduler/DatatableJob.vb
index dc05a2fd..b1510bd0 100644
--- a/Service.EDMIService/Scheduler/DatatableJob.vb
+++ b/Service.EDMIService/Scheduler/DatatableJob.vb
@@ -9,6 +9,8 @@ Imports Quartz
Public Class DatatableJob
Implements IJob
+
+
Private Const COMMAND_SQL_TIMEOUT = 240
Private _MSSQL As MSSQLServer
diff --git a/Service.EDMIService/Scheduler/JobListener.vb b/Service.EDMIService/Scheduler/JobListener.vb
index 84a664f0..dab2f9b7 100644
--- a/Service.EDMIService/Scheduler/JobListener.vb
+++ b/Service.EDMIService/Scheduler/JobListener.vb
@@ -202,7 +202,7 @@ Public Class JobListener
_MSSQL.ExecuteNonQuery($"INSERT INTO TBAPPSERV_CRON_DETAIL_HISTORY (DETAIL_ID) VALUES ({oDetailId})")
Catch ex As Exception
- _Logger.Warn("Unexpected error in JobListener: {0}", ex.Message)
+ _Logger.Warn("Unexpected error in SaveDataTables: {0}", ex.Message)
_Logger.Error(ex)
End Try
End Sub
diff --git a/Service.EDMIService/Scheduler/LogProvider.vb b/Service.EDMIService/Scheduler/LogProvider.vb
new file mode 100644
index 00000000..0c09f6dc
--- /dev/null
+++ b/Service.EDMIService/Scheduler/LogProvider.vb
@@ -0,0 +1,34 @@
+Imports Quartz.Logging
+
+Public Class LogProvider
+ Implements ILogProvider
+
+ Private ReadOnly Logger As DigitalData.Modules.Logging.Logger
+
+ Public Sub New(Logger As DigitalData.Modules.Logging.Logger)
+ MyBase.New()
+ Me.Logger = Logger
+ End Sub
+
+ Public Function OpenNestedContext(message As String) As IDisposable Implements ILogProvider.OpenNestedContext
+ Throw New NotImplementedException()
+ End Function
+
+ Public Function OpenMappedContext(key As String, value As Object, Optional destructure As Boolean = False) As IDisposable Implements ILogProvider.OpenMappedContext
+ Throw New NotImplementedException()
+ End Function
+
+ Private Function GetLogger(name As String) As Logger Implements ILogProvider.GetLogger
+ Return Function(level, func, exception, parameters)
+ If exception IsNot Nothing Then
+ Logger.Error(exception)
+ ElseIf level >= LogLevel.Debug AndAlso func IsNot Nothing Then
+ Logger.Debug(func(), parameters)
+ ElseIf level >= LogLevel.Info AndAlso func IsNot Nothing Then
+ Logger.Info(func(), parameters)
+ End If
+
+ Return True
+ End Function
+ End Function
+End Class
diff --git a/Service.EDMIService/Scheduler/Scheduler.vb b/Service.EDMIService/Scheduler/Scheduler.vb
index e968b224..f5b76388 100644
--- a/Service.EDMIService/Scheduler/Scheduler.vb
+++ b/Service.EDMIService/Scheduler/Scheduler.vb
@@ -7,28 +7,28 @@ Imports Quartz.Impl.Matchers
Imports Quartz.Logging
Public Class Scheduler
- Private _Factory As StdSchedulerFactory
- Private _MSSQL As MSSQLServer
- Private _Scheduler As IScheduler
- Private _LogConfig As LogConfig
- Private _Logger As DigitalData.Modules.Logging.Logger
- Private _JobListener As JobListener
+ Inherits BaseClass
- Private _Props = New NameValueCollection From {
- {"quartz.serializer.type", "binary"}
+ Private ReadOnly _Factory As StdSchedulerFactory
+ Private ReadOnly _MSSQL As MSSQLServer
+ Private _Scheduler As IScheduler
+ Private ReadOnly _JobListener As JobListener
+
+ Private ReadOnly _Props = New NameValueCollection From {
+ {"quartz.serializer.type", "binary"},
+ {"quartz.threadPool.maxConcurrency", 1}
}
Private Const JOB_GROUP As String = "DatatableJobs"
Public Sub New(LogConfig As LogConfig, MSSQL_ECM As MSSQLServer, TableStore As DataSet)
- _LogConfig = LogConfig
- _Logger = LogConfig.GetLogger()
+ MyBase.New(LogConfig)
_Factory = New StdSchedulerFactory(_Props)
_MSSQL = MSSQL_ECM
_JobListener = New JobListener(LogConfig, _MSSQL, TableStore)
- Logging.LogProvider.SetCurrentLogProvider(New LogProvider(_Logger))
+ Logging.LogProvider.SetCurrentLogProvider(New LogProvider(Logger))
End Sub
Public Async Sub Start()
@@ -46,7 +46,7 @@ Public Class Scheduler
Try
If oCronjobs IsNot Nothing Then
- _Logger.Debug("Loaded {0} cron jobs", oCronjobs.Rows.Count)
+ Logger.Debug("Loaded {0} cron jobs", oCronjobs.Rows.Count)
For Each oRow As DataRow In oCronjobs.Rows
Dim oDefinition As String = oRow.Item("CRON_DEFINITION")
@@ -60,7 +60,7 @@ Public Class Scheduler
Dim oInitJob As IJobDetail
Dim oJobData As New JobDataMap From {
- {"LogConfig", _LogConfig},
+ {"LogConfig", LogConfig},
{"MSSQL", _MSSQL},
{"CronJobId", oGuid},
{"CronJobTitle", oTitle}
@@ -96,14 +96,14 @@ Public Class Scheduler
Await _Scheduler.ScheduleJob(oInitJob, oInitTrigger)
- _Logger.Debug("Scheduled a new job for Cron Job [{0}]", oTitle)
+ Logger.Debug("Scheduled a new job for Cron Job [{0}]", oTitle)
Next
Else
- _Logger.Warn("CronJobs could not be fetched!")
+ Logger.Warn("CronJobs could not be fetched!")
End If
Catch ex As Exception
- _Logger.Error(ex)
- _Logger.Warn("Unexpected Error while setting up scheduler: " & ex.Message)
+ Logger.Error(ex)
+ Logger.Warn("Unexpected Error while setting up scheduler: " & ex.Message)
End Try
End Sub
Public Async Function GetCronJobs() As Task(Of DataTable)
@@ -131,37 +131,4 @@ Public Class Scheduler
Public Async Sub [Stop]()
Await _Scheduler.Shutdown()
End Sub
-
- Private Class LogProvider
- Implements ILogProvider
-
- Private _Logger As Modules.Logging.Logger
-
- Public Sub New(Logger As DigitalData.Modules.Logging.Logger)
- MyBase.New()
- _Logger = Logger
- End Sub
-
- Public Function OpenNestedContext(message As String) As IDisposable Implements ILogProvider.OpenNestedContext
- Throw New NotImplementedException()
- End Function
-
- Public Function OpenMappedContext(key As String, value As Object, Optional destructure As Boolean = False) As IDisposable Implements ILogProvider.OpenMappedContext
- Throw New NotImplementedException()
- End Function
-
- Private Function GetLogger(name As String) As Logging.Logger Implements ILogProvider.GetLogger
- Return Function(level, func, exception, parameters)
- If exception IsNot Nothing Then
- _Logger.Error(exception)
- ElseIf level >= LogLevel.Debug AndAlso func IsNot Nothing Then
- _Logger.Debug(func(), parameters)
- ElseIf level >= LogLevel.Info AndAlso func IsNot Nothing Then
- _Logger.Info(func(), parameters)
- End If
-
- Return True
- End Function
- End Function
- End Class
End Class