Просмотр исходного кода

Improved Logging when PRS Server Engines lose connection with the Database server

frogsoftware 11 месяцев назад
Родитель
Сommit
41f57ff614
2 измененных файлов с 12 добавлено и 10 удалено
  1. 1 4
      prs.licensing/Engine/LicensingEngine.cs
  2. 11 6
      prs.services/Engine.cs

+ 1 - 4
prs.licensing/Engine/LicensingEngine.cs

@@ -39,14 +39,11 @@ public class LicensingEngine : Engine<LicensingEngineProperties>
         ReportUtils.RegisterClasses();
         ConfigurationUtils.RegisterClasses();
 
-        Logger.Send(LogType.Information, "", "Starting Listener on port " + Properties.ListenPort);
-
+        Logger.Send(LogType.Information, "", "Starting Web Listener on port " + Properties.ListenPort);
         try
         {
             listener = new Listener<LicensingHandler, LicensingHandlerProperties>(new LicensingHandlerProperties(Properties));
             listener.InitHTTPS((ushort)Properties.ListenPort, CertificateFileName());
-
-            Logger.Send(LogType.Information, "", "Starting Web Listener on port " + Properties.ListenPort);
             listener.Start();
         }
         catch (Exception eListen)

+ 11 - 6
prs.services/Engine.cs

@@ -71,14 +71,18 @@ public abstract class Engine<TProperties> : IEngine where TProperties : ServerPr
 
         _connecting = true;
         // Wait for server connection
-        while (!Client.Ping())
+        while (_connecting)
         {
-            Logger.Send(LogType.Error, "", "Database server unavailable. Trying again in 30 seconds...");
-            Task.Delay(30_000).Wait();
-            Logger.Send(LogType.Information, "", "Retrying connection...");
+            Logger.Send(LogType.Information, "", "Connecting to Database server...");
+            if (Client.Ping())
+                _connecting = false;
+            else
+            {
+                Logger.Send(LogType.Error, "", "Database server unavailable. Trying again in 30 seconds...");
+                Task.Delay(30_000).Wait();
+            }
         }
-
-        _connecting = false;
+        
 
         ClientFactory.SetBypass();
 
@@ -99,6 +103,7 @@ public abstract class Engine<TProperties> : IEngine where TProperties : ServerPr
     private void Transport_OnClose(IRpcTransport transport, RpcTransportCloseArgs e)
     {
         // Try to reconnect when lost connection.
+        Logger.Send(LogType.Error, "", "Database server connection lost.");
         CheckConnection();
     }