Procházet zdrojové kódy

update connection log for ipv6 record

shayne_lo před 4 měsíci
rodič
revize
8f6f4ea6b5

+ 4 - 123
EVCB_OCPP.WSServer/Service/DbService/ConnectionLogdbService.cs

@@ -82,54 +82,6 @@ public class ConnectionLogdbService : IConnectionLogdbService
         //_ = InsertWithDapper(log);
     }
 
-    private async Task InsertWithDapper(MachineLog log)
-    {
-        var watch = Stopwatch.StartNew();
-        long t0, t1, t2, t3;
-        var workTime = DateTime.UtcNow;
-        if (!await GetTableExist(workTime))
-        {
-            t0 = watch.ElapsedMilliseconds;
-            await WriteMachineLogEF(log);
-            watch.Stop();
-            t1 = watch.ElapsedMilliseconds;
-            if (t1 > 500)
-            {
-                logger.LogWarning("ConnectionLog InsertWithDapper {0}/{1}", t0, t1);
-            }
-            return;
-        }
-
-        t0 = watch.ElapsedMilliseconds;
-        var tableName = GetTableName(workTime);
-        string command = $"""
-            INSERT INTO {tableName} (CreatedOn, ChargeBoxId, MessageType, Data, Msg, IsSent, EVSEEndPoint, Session)
-            VALUES (@CreatedOn, @ChargeBoxId, @MessageType, @Data, @Msg, @IsSent, @EVSEEndPoint, @Session);
-            """;
-
-        var parameters = new DynamicParameters();
-        parameters.Add("CreatedOn", workTime, DbType.DateTime);
-        parameters.Add("ChargeBoxId", log.clientData.ChargeBoxId == null ? "unknown" : log.clientData.ChargeBoxId.Replace("'", "''"), DbType.String, size: 50); ;
-        parameters.Add("MessageType", log.messageType.Replace("'", "''"), DbType.String, size: 50);
-        parameters.Add("Data", log.data.Replace("'", "''"), DbType.String);
-        parameters.Add("Msg", log.errorMsg.Replace("'", "''"), DbType.String, size: 200);
-        parameters.Add("IsSent", log.isSent, DbType.Boolean);
-        parameters.Add("EVSEEndPoint", log.clientData.Endpoint == null ? "123" : log.clientData.Endpoint.ToString(), DbType.String, size: 25);
-        parameters.Add("Session", log.clientData.SessionID == null ? "123" : log.clientData.SessionID, DbType.String, size: 36);
-
-        t1 = watch.ElapsedMilliseconds;
-        using var sqlConnection = await sqlConnectionFactory.CreateAsync();
-        t2 = watch.ElapsedMilliseconds;
-        await sqlConnection.ExecuteAsync(command, parameters);
-
-        watch.Stop();
-        t3 = watch.ElapsedMilliseconds;
-        if (t3 > 1000)
-        {
-            logger.LogWarning("ConnectionLog Dapper {0}/{1}/{2}/{3}", t0, t1, t2, t3);
-        }
-    }
-
     private void InitInsertConnectonLogHandler()
     {
         if (insertConnectonLogHandler is not null)
@@ -166,9 +118,9 @@ public class ConnectionLogdbService : IConnectionLogdbService
                     new SqlParameter("MessageType", SqlDbType.NVarChar , 50){ Value =  log.messageType.Replace("'","''")},
                     new SqlParameter("Data", SqlDbType.NVarChar, -1) { Value = log.data.Replace("'", "''") },
                     new SqlParameter("Msg", SqlDbType.NVarChar, 200) { Value = log.errorMsg.Replace("'", "''") },
-                    new  SqlParameter("IsSent", SqlDbType.Bit) { Value = log.isSent },
-                    new  SqlParameter("EVSEEndPoint", SqlDbType.NVarChar, 25) { Value = log.clientData.Endpoint == null ? "123" : log.clientData.Endpoint.ToString() },
-                    new  SqlParameter("Session", SqlDbType.NVarChar, 36) { Value = log.clientData.SessionID == null ? "123" : log.clientData.SessionID }
+                    new SqlParameter("IsSent", SqlDbType.Bit) { Value = log.isSent },
+                    new SqlParameter("EVSEEndPoint", SqlDbType.NVarChar, 50) { Value = log.clientData.Endpoint == null ? "123" : log.clientData.Endpoint.ToString() },
+                    new SqlParameter("Session", SqlDbType.NVarChar, 36) { Value = log.clientData.SessionID == null ? "123" : log.clientData.SessionID }
             };
             using (var db = await connectionLogdbContextFactory.CreateDbContextAsync())
             {
@@ -241,7 +193,7 @@ public class ConnectionLogdbService : IConnectionLogdbService
             parameters.Add("Data", log.data.Replace("'", "''"), DbType.String);
             parameters.Add("Msg", log.errorMsg.Replace("'", "''"), DbType.String, size: 200);
             parameters.Add("IsSent", log.isSent, DbType.Boolean);
-            parameters.Add("EVSEEndPoint", log.clientData.Endpoint == null ? "123" : log.clientData.Endpoint.ToString(), DbType.String, size: 25);
+            parameters.Add("EVSEEndPoint", log.clientData.Endpoint == null ? "123" : log.clientData.Endpoint.ToString(), DbType.String, size: 50);
             parameters.Add("Session", log.clientData.SessionID == null ? "123" : log.clientData.SessionID, DbType.String, size: 36);
             parameters.Add("HourIndex", workTime.Hour, DbType.Int32);
 
@@ -270,77 +222,6 @@ public class ConnectionLogdbService : IConnectionLogdbService
         return;
     }
 
-    private async Task BulkInsertWithBulkCopy(IEnumerable<MachineLog> parms)
-    {
-        var watcher = Stopwatch.StartNew();
-        long t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0;
-
-        var parmsList = parms.ToList();
-        if (parmsList.Count == 0)
-        {
-            return;
-        }
-
-        var workTime = DateTime.UtcNow;
-        if (!await GetTableExist(workTime))
-        {
-            var candidate = parmsList.First();
-            await WriteMachineLogEF(candidate);
-            parmsList.Remove(candidate);
-        }
-
-        t0 = watcher.ElapsedMilliseconds;
-        var table = new DataTable();
-        table.Columns.Add("CreatedOn");
-        table.Columns.Add("ChargeBoxId");
-        table.Columns.Add("MessageType");
-        table.Columns.Add("Data");
-        table.Columns.Add("Msg");
-        table.Columns.Add("IsSent");
-        table.Columns.Add("EVSEEndPoint");
-        table.Columns.Add("Session");
-
-        foreach (var param in parmsList)
-        {
-            var row = table.NewRow();
-            row["CreatedOn"] = workTime;
-            row["ChargeBoxId"] = param.clientData.ChargeBoxId == null ? "unknown" : param.clientData.ChargeBoxId.Replace("'", "''");
-            row["MessageType"] = param.messageType.Replace("'", "''");
-            row["Data"] = param.data.Replace("'", "''");
-            row["Msg"] = param.errorMsg.Replace("'", "''");
-            row["IsSent"] = param.isSent;
-            row["EVSEEndPoint"] = param.clientData.Endpoint == null ? "123" : param.clientData.Endpoint.ToString();
-            row["Session"] = param.clientData.SessionID == null ? "123" : param.clientData.SessionID;
-
-            table.Rows.Add(row);
-        }
-        t1 = watcher.ElapsedMilliseconds;
-        using SqlConnection sqlConnection = await sqlConnectionFactory.CreateAsync();
-        using SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(sqlConnection);
-        t2 = watcher.ElapsedMilliseconds;
-        sqlBulkCopy.BatchSize = parmsList.Count();
-        sqlBulkCopy.DestinationTableName = GetTableName(workTime);
-
-        sqlBulkCopy.ColumnMappings.Add("CreatedOn", "CreatedOn");
-        sqlBulkCopy.ColumnMappings.Add("ChargeBoxId", "ChargeBoxId");
-        sqlBulkCopy.ColumnMappings.Add("MessageType", "MessageType");
-        sqlBulkCopy.ColumnMappings.Add("Data", "Data");
-        sqlBulkCopy.ColumnMappings.Add("Msg", "Msg");
-        sqlBulkCopy.ColumnMappings.Add("IsSent", "IsSent");
-        sqlBulkCopy.ColumnMappings.Add("EVSEEndPoint", "EVSEEndPoint");
-        sqlBulkCopy.ColumnMappings.Add("Session", "Session");
-        t3 = watcher.ElapsedMilliseconds;
-        await sqlBulkCopy.WriteToServerAsync(table);
-
-        watcher.Stop();
-        t4 = watcher.ElapsedMilliseconds;
-
-        if (t4 > 500)
-        {
-            logger.LogWarning("ConnectionLog BulkInsertWithBulkCopy Slow {0}/{1}/{2}/{3}/{4}/{5}", t0, t1, t2, t3, t4, parms.Count());
-        }
-    }
-
     private async ValueTask<bool> GetTableExist(DateTime tableDateTime)
     {
         var tableName = GetTableName(tableDateTime);