Add Heartbeat Function to Service, Add Timer to ClientSuite Service Startup check
This commit is contained in:
@@ -17,18 +17,25 @@ Public Class EDMService
|
||||
|
||||
Private _request As Request = Nothing
|
||||
Private _debug As Boolean = False
|
||||
Private _username As String
|
||||
|
||||
Public Sub New()
|
||||
Dim oOperationContext As OperationContext = OperationContext.Current
|
||||
Dim oInstanceContext As InstanceContext = oOperationContext.InstanceContext
|
||||
Dim oUsername = oOperationContext.ServiceSecurityContext.WindowsIdentity.Name
|
||||
|
||||
_username = oUsername
|
||||
_logger = LogConfig.GetLogger()
|
||||
End Sub
|
||||
|
||||
#Region "Heartbeat"
|
||||
Public Function Heartbeat() As Boolean Implements IEDMService.Heartbeat
|
||||
Return True
|
||||
End Function
|
||||
#End Region
|
||||
#Region "Request"
|
||||
Public Function CreateDatabaseRequest(Name As String, Optional Debug As Boolean = False) As String Implements IEDMService.CreateDatabaseRequest
|
||||
_request = New Request(Name, _session.Username, Database, Debug)
|
||||
_request = New Request(Name, _username, Database, Debug)
|
||||
_debug = Debug
|
||||
|
||||
_logger.Info("Creating request {0}/{1}", _request.Name, _request.RequestId)
|
||||
|
||||
@@ -4,6 +4,11 @@ Imports DigitalData.Modules.Filesystem
|
||||
<ServiceContract([Namespace]:="http://DigitalData.Services.EDMService")>
|
||||
Interface IEDMService
|
||||
|
||||
#Region "Heartbeat"
|
||||
<OperationContract>
|
||||
Function Heartbeat() As Boolean
|
||||
#End Region
|
||||
|
||||
#Region "Database"
|
||||
<OperationContract>
|
||||
Function CreateDatabaseRequest(Name As String, Optional Debug As Boolean = False) As String
|
||||
|
||||
@@ -15,7 +15,6 @@ Public Class WindowsService
|
||||
Private _logger As Logger
|
||||
Private _db As Firebird
|
||||
Private _clientsConnected As Integer = 0
|
||||
Private _clients As New List(Of Session)
|
||||
Private _config As AppConfig
|
||||
|
||||
Public Sub New()
|
||||
@@ -46,9 +45,6 @@ Public Class WindowsService
|
||||
|
||||
_logger.Info("Successfully connected to database!")
|
||||
|
||||
AddHandler EDMService.ClientConnectedEvent, AddressOf EDMService_ClientConnected
|
||||
AddHandler EDMService.ClientDisconnectedEvent, AddressOf EDMService_ClientDisonnected
|
||||
|
||||
EDMService.Database = _db
|
||||
EDMService.LogConfig = _logConfig
|
||||
EDMService.AppConfig = _config
|
||||
@@ -66,18 +62,6 @@ Public Class WindowsService
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub EDMService_ClientDisonnected(sender As Object, e As Session)
|
||||
_clientsConnected -= 1
|
||||
_clients.Remove(e)
|
||||
_logger.Info("Client {0}/{1} disconnected! Total {2}", e.Username, e.SessionId, _clientsConnected)
|
||||
End Sub
|
||||
|
||||
Private Sub EDMService_ClientConnected(sender As Object, e As Session)
|
||||
_clientsConnected += 1
|
||||
_clients.Add(e)
|
||||
_logger.Info("Client {0}/{1} connected! Total {2}", e.Username, e.SessionId, _clientsConnected)
|
||||
End Sub
|
||||
|
||||
Protected Overrides Sub OnStop()
|
||||
If _serviceHost IsNot Nothing Then
|
||||
_serviceHost.Close()
|
||||
|
||||
Reference in New Issue
Block a user