Verbesserung von Performance und Monitoring

Neue Performance-Metriken in `EDMIService` hinzugefügt, inkl. Felder für Job-Dauer, langsame Queries und Timestamps. `ServiceStatusResponse` um diese Metriken erweitert.
`DatatableJob` optimiert: `<DisallowConcurrentExecution>` hinzugefügt, Logging für langsame Queries (>10s) und Jobs (>30s) verbessert, sowie Gesamt-Dauer-Messung integriert.
`Scheduler` nutzt nun dedizierte MSSQL-Instanz zur Entkopplung von Datenbankoperationen. Thread-Pool-Größe reduziert und gestaffeltes Starten von INIT-Jobs eingeführt.
Connection-Strings in `WindowsService` angepasst: `ApplicationName` spezifisch gesetzt und `MaxPoolSize` erhöht. Allgemeine Logging-Verbesserungen für bessere Skalierbarkeit und Stabilität.
This commit is contained in:
Developer01
2026-10-13 12:04:13 +02:00
parent 205e0ad302
commit 8220852e56
6 changed files with 102 additions and 52 deletions

View File

@@ -1,11 +1,12 @@
Imports System.ServiceModel
Imports System.ServiceProcess
Imports DigitalData.Modules.Logging
Imports DigitalData.Modules.Database
Imports DigitalData.Modules
Imports System.ServiceModel.Description
Imports DigitalData.Modules.Config
Imports System.Data.SqlClient
Imports System.ServiceModel
Imports System.ServiceModel.Channels
Imports System.ServiceModel.Description
Imports System.ServiceProcess
Imports DigitalData.Modules
Imports DigitalData.Modules.Config
Imports DigitalData.Modules.Database
Imports DigitalData.Modules.Logging
Public Class WindowsService
Inherits ServiceBase
@@ -187,8 +188,11 @@ Public Class WindowsService
Throw New ArgumentNullException("ConnectionString_ECM")
End If
Dim oMSSQL = New MSSQLServer(pLogConfig, Config.ConnectionString_ECM)
Logger.Info("✔ Database connection to ECM Database established.")
Dim oBuilder As New SqlConnectionStringBuilder(Config.ConnectionString_ECM)
oBuilder.ApplicationName = "DD_EDMIAppService"
oBuilder.MaxPoolSize = Math.Max(50, oBuilder.MaxPoolSize) ' ← nie kleiner als 50 setzen
Dim oMSSQL = New MSSQLServer(pLogConfig, oBuilder.ToString())
Logger.Info("✔ Database connection to ECM Database established | MaxPool=[{0}]", oBuilder.MaxPoolSize)
Return oMSSQL
End Function
@@ -199,8 +203,11 @@ Public Class WindowsService
Throw New ArgumentNullException("ConnectionString_IDB")
End If
Dim oMSSQL = New MSSQLServer(pLogConfig, Config.ConnectionString_IDB)
Logger.Info("✔ Database connection to IDB Database established.")
Dim oBuilder As New SqlConnectionStringBuilder(Config.ConnectionString_IDB)
oBuilder.ApplicationName = "DD_EDMIAppService-IDB"
oBuilder.MaxPoolSize = Math.Max(20, oBuilder.MaxPoolSize) ' ← nie kleiner als 20 setzen
Dim oMSSQL = New MSSQLServer(pLogConfig, oBuilder.ToString())
Logger.Info("✔ Database connection to IDB Database established | MaxPool=[{0}]", oBuilder.MaxPoolSize)
Return oMSSQL
End Function