From 1c114905fc6ac382386178854ca45da1e4a411e8 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 23 Sep 2025 09:15:02 +0200 Subject: [PATCH] =?UTF-8?q?Update=20parametri=20connessione:=20NON=20scado?= =?UTF-8?q?no=20subito=20connessioni=20e=20non=20da=20warning=20cos=C3=AC?= =?UTF-8?q?=20rapidi/ricorrenti?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MagMan.Data.Admin/DbAdmin.cs | 5 ++- MagMan.Data.Admin/DbConfig.cs | 4 +- MagMan.Data.Admin/MultiTenantContext.cs | 2 +- MagMan.Data.Tenant/DbConfig.cs | 4 +- MagMan.Data.Tenant/MagManContext.cs | 2 +- MagMan.UI/Health/Checks.cs | 56 +++++++++++++------------ MagMan.UI/MagMan.UI.csproj | 2 +- MagMan.UI/Program.cs | 9 ++-- Resources/ChangeLog.html | 2 +- Resources/VersNum.txt | 2 +- Resources/manifest.xml | 2 +- 11 files changed, 48 insertions(+), 42 deletions(-) diff --git a/MagMan.Data.Admin/DbAdmin.cs b/MagMan.Data.Admin/DbAdmin.cs index 38b3ef6..7864d48 100644 --- a/MagMan.Data.Admin/DbAdmin.cs +++ b/MagMan.Data.Admin/DbAdmin.cs @@ -35,10 +35,11 @@ namespace MagMan.Data.Admin public static bool CheckCreateUser(string username, string pwd, string dbName) { bool answ = false; + int numUser = 0; using (ServerAdminContext adbCtx = new ServerAdminContext()) { // ricerca utente... - var numUser = adbCtx + numUser = adbCtx .UserList .Where(x => x.User == username) .ToList() @@ -54,7 +55,7 @@ namespace MagMan.Data.Admin adbCtx.Database.ExecuteSqlRaw(sqlCommand); sqlCommand = $"CREATE USER '{username}'@'localhost' IDENTIFIED BY '{pwd}';"; adbCtx.Database.ExecuteSqlRaw(sqlCommand); - sqlCommand = $"GRANT ALL ON *.* TO '{username}'@'localhost';"; + sqlCommand = $"GRANT ALL PRIVILEGES ON {dbName}.* TO '{username}'@'localhost';"; adbCtx.Database.ExecuteSqlRaw(sqlCommand); sqlCommand = "FLUSH PRIVILEGES;"; adbCtx.Database.ExecuteSqlRaw(sqlCommand); diff --git a/MagMan.Data.Admin/DbConfig.cs b/MagMan.Data.Admin/DbConfig.cs index 0c31922..c4f1348 100644 --- a/MagMan.Data.Admin/DbConfig.cs +++ b/MagMan.Data.Admin/DbConfig.cs @@ -86,9 +86,9 @@ namespace MagMan.Data.Admin { DATABASE_SERV = server; // tutto fisso x gestione utenti - CONNECTION_STRING = $"Server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;"; + CONNECTION_STRING = $"Server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;ConnectionIdleTimeout=30;ConnectionLifeTime=300;"; // stringa admin con utente admin dell'applicazione (già creato)... - ADMIN_CONNECTION_STRING = $"Server={DATABASE_SERV};port=3306;database=mysql;uid=egalware;pwd=Egalware_24068!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;"; + ADMIN_CONNECTION_STRING = $"Server={DATABASE_SERV};port=3306;database=mysql;uid=egalware;pwd=Egalware_24068!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;ConnectionIdleTimeout=30;ConnectionLifeTime=300;"; } public static ServerVersion MysqlServerVersion(string connString) diff --git a/MagMan.Data.Admin/MultiTenantContext.cs b/MagMan.Data.Admin/MultiTenantContext.cs index 0944be4..304be88 100644 --- a/MagMan.Data.Admin/MultiTenantContext.cs +++ b/MagMan.Data.Admin/MultiTenantContext.cs @@ -52,7 +52,7 @@ namespace MagMan.Data.Admin #if DEBUG //connString = "Server=localhost;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;"; //connString = "Server=mdb03.ufficio;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;"; - connString = "Server=mdb.ufficio;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;"; + connString = "Server=mdb.ufficio;port=3306;database=MagMan_Admin;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;ConnectionIdleTimeout=30;ConnectionLifeTime=300;"; #endif var serverVersion = DbConfig.MysqlServerVersion(connString); optionsBuilder.UseMySql(connString, serverVersion); diff --git a/MagMan.Data.Tenant/DbConfig.cs b/MagMan.Data.Tenant/DbConfig.cs index 160c8cb..155d4dd 100644 --- a/MagMan.Data.Tenant/DbConfig.cs +++ b/MagMan.Data.Tenant/DbConfig.cs @@ -51,7 +51,7 @@ namespace MagMan.Data.Tenant public static string CustomerConnString(string server, int nKey) { string dbName = $"MagMan_{nKey:000000}"; - return $"server={server};port=3306;database={dbName};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;"; + return $"server={server};port=3306;database={dbName};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;ConnectionIdleTimeout=30;ConnectionLifeTime=300;"; //LoadBalance=RoundRobin;Pooling=true; } @@ -67,7 +67,7 @@ namespace MagMan.Data.Tenant { DATABASE_SERV = server; DATABASE_NAME = $"MagMan_{nKey:000000}"; - CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;"; + CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;ConnectionIdleTimeout=30;ConnectionLifeTime=300;"; //LoadBalance=RoundRobin;Pooling=true; } diff --git a/MagMan.Data.Tenant/MagManContext.cs b/MagMan.Data.Tenant/MagManContext.cs index 5d556b1..963bac8 100644 --- a/MagMan.Data.Tenant/MagManContext.cs +++ b/MagMan.Data.Tenant/MagManContext.cs @@ -76,7 +76,7 @@ namespace MagMan.Data.Tenant #if DEBUG //connString = "Server=localhost;port=3306;database=MagMan_000470;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;"; ////connString = "Server=mdb03.ufficio;port=3306;database=MagMan_000470;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;"; - connString = "Server=mdb.ufficio;port=3306;database=MagMan_000470;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;"; + connString = "Server=mdb.ufficio;port=3306;database=MagMan_000470;uid=MagMan_DbUser;pwd=viad@nte16!;sslmode=None;Connection Lifetime=60;Connection Timeout=15;DefaultCommandTimeout=30;ConnectionIdleTimeout=30;ConnectionLifeTime=300;"; #endif var serverVersion = DbConfig.MysqlServerVersion(connString); optionsBuilder.UseMySql(connString, serverVersion, options => options.EnableRetryOnFailure( diff --git a/MagMan.UI/Health/Checks.cs b/MagMan.UI/Health/Checks.cs index ea04353..ea6aacb 100644 --- a/MagMan.UI/Health/Checks.cs +++ b/MagMan.UI/Health/Checks.cs @@ -1,13 +1,14 @@ -using MagMan.Data.Tenant.DbModels; -using MagMan.Data; +using MagMan.Data; +using MagMan.Data.Admin; +using MagMan.Data.Admin.DbModels; +using MagMan.Data.Tenant; +using MagMan.Data.Tenant.DbModels; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Diagnostics.HealthChecks; +using MySqlConnector; using NLog; using Org.BouncyCastle.Pqc.Crypto.Lms; using System.Net.NetworkInformation; -using MagMan.Data.Admin; -using MagMan.Data.Admin.DbModels; -using Microsoft.EntityFrameworkCore; -using MagMan.Data.Tenant; namespace MagMan.UI.Health { @@ -19,6 +20,7 @@ namespace MagMan.UI.Health #endregion Private Fields + #region Public Methods public static async Task DbIdentity(string dbName) @@ -30,8 +32,9 @@ namespace MagMan.UI.Health var healthCheckData = new Dictionary(); try { - string sqlQuery = $"SELECT 'AspNetUsers' AS TableName, COUNT(*) AS Count FROM information_schema.tables WHERE table_schema = '{dbName}' AND table_name = 'AspNetUsers' LIMIT 1;"; - var table = await Task.FromResult(appDb.DbSetCounts.FromSqlRaw(sqlQuery).ToList()); + var dbParam = new MySqlParameter("dbName", dbName); + string sqlQuery = $"SELECT 'AspNetUsers' AS TableName, COUNT(*) AS Count FROM information_schema.tables WHERE table_schema = @dbName AND table_name = 'AspNetUsers' LIMIT 1;"; + var table = await appDb.DbSetCounts.FromSqlRaw(sqlQuery, dbParam).ToListAsync(); // provo a controllare se ho tab utenti if (table != null && table.Count > 0) @@ -59,9 +62,9 @@ namespace MagMan.UI.Health var healthCheckData = new Dictionary(); using (MultiTenantContext localDbCtx = new MultiTenantContext()) { - var dbCount = localDbCtx + var dbCount = await localDbCtx .DbSetCustomers - .Count(); + .CountAsync(); if (dbCount > 0) { description = $"Check CUSTOMERS table, found {dbCount} records"; @@ -76,27 +79,27 @@ namespace MagMan.UI.Health public static async Task DbUserRoot(string dbName) { - using (var adminDb = new ServerAdminContext()) + List userList = new List(); + string description = "Try check MySql User table"; + var healthCheckData = new Dictionary(); + try { - string description = "Try check MySql User table"; - List userList = new List(); - var healthCheckData = new Dictionary(); - try + // provo a controllare se ho tab utenti + using (var adminDb = new ServerAdminContext()) { - // provo a controllare se ho tab utenti - userList = await Task.FromResult(adminDb.UserList.ToList()).ConfigureAwait(false); - if (userList.Count > 0) - { - description = $"Check MySql User table, found {userList.Count} records"; - return HealthCheckResult.Healthy(description, healthCheckData); - } + userList = await adminDb.UserList.ToListAsync(); } - catch (Exception exc) + if (userList.Count > 0) { - Log.Error(exc, "Errore in esecuzione DbUserRoot"); + description = $"Check MySql User table, found {userList.Count} records"; + return HealthCheckResult.Healthy(description, healthCheckData); } - return HealthCheckResult.Unhealthy(description + $" {dbName}", null, healthCheckData); } + catch (Exception exc) + { + Log.Error(exc, "Errore in esecuzione DbUserRoot"); + } + return HealthCheckResult.Unhealthy(description + $" {dbName}", null, healthCheckData); } public static async Task PingCheck(string hostName) @@ -105,7 +108,8 @@ namespace MagMan.UI.Health { return HealthCheckResult.Unhealthy($"Wrong Hostname: {hostName}"); } - else { + else + { using (var thePing = new Ping()) { var pingResult = await thePing.SendPingAsync(hostName); diff --git a/MagMan.UI/MagMan.UI.csproj b/MagMan.UI/MagMan.UI.csproj index 1ab460e..522a2d9 100644 --- a/MagMan.UI/MagMan.UI.csproj +++ b/MagMan.UI/MagMan.UI.csproj @@ -2,7 +2,7 @@ net6.0 - 1.0.2509.2219 + 1.0.2509.2309 enable enable true diff --git a/MagMan.UI/Program.cs b/MagMan.UI/Program.cs index 36c3b42..3a32a24 100644 --- a/MagMan.UI/Program.cs +++ b/MagMan.UI/Program.cs @@ -60,19 +60,20 @@ string connStringDB = MagMan.Data.Admin.DbConfig.CONNECTION_STRING; * * */ // abilitazione blobale healthCheck... -bool enabHealth = builder.Configuration.GetValue("OptConf:EnableHealth"); +bool enabHealth = builder.Configuration.GetValue("OptConf:EnableHealth2"); if (enabHealth) { - //string redisConnCheck = "redis.ufficio:26379, serviceName=devel, DefaultDatabase=13, connectTimeout=2000, syncTimeout=2000, asyncTimeout=2000, abortConnect=false, ssl=false, allowAdmin=true"; - string redisConnCheck = "redis.ufficio:6378,DefaultDatabase=13,connectTimeout=2000,syncTimeout=2000,asyncTimeout=2000,abortConnect=false,ssl=false,allowAdmin=true"; + //string redisConnCheck = "redis.ufficio:26379, serviceName=devel, DefaultDatabase=14, connectTimeout=2000, syncTimeout=2000, asyncTimeout=2000, abortConnect=false, ssl=false, allowAdmin=true"; + string redisConnCheck = "redis.ufficio:6378, DefaultDatabase=14, connectTimeout=2000, syncTimeout=2000, asyncTimeout=2000, abortConnect=false, ssl=false, allowAdmin=true"; builder.Services.AddHealthChecks() .AddMySql(connStringDB, "MySql instance") .AddAsyncCheck($"DB PING ({dbServerAddr})", () => MagMan.UI.Health.Checks.PingCheck(dbServerAddr)) .AddAsyncCheck($"Redis PING ({redisSrvAddr})", () => MagMan.UI.Health.Checks.PingCheck(redisSrvAddr)) // 512 MB max allocated memory .AddProcessAllocatedMemoryHealthCheck(512, "Max Process memory (<512MB)", failureStatus: HealthStatus.Degraded) - //.AddRedis(builder.Configuration.GetConnectionString("Redis"), "Redis", failureStatus: HealthStatus.Degraded) + //.AddRedis(connStringRedis, "Redis", failureStatus: HealthStatus.Degraded) .AddRedis(redisConnCheck, "Redis", failureStatus: HealthStatus.Degraded) + //.AddRedis(builder.Configuration.GetConnectionString("Redis"), "Redis", failureStatus: HealthStatus.Degraded) .AddAsyncCheck($"MySql Identity", () => MagMan.UI.Health.Checks.DbIdentity(MagMan.Data.Admin.DbConfig.DATABASE_NAME)) .AddAsyncCheck($"MySql Customers", () => MagMan.UI.Health.Checks.CustomersCount()) ; diff --git a/Resources/ChangeLog.html b/Resources/ChangeLog.html index 8c0f1d7..58fce00 100644 --- a/Resources/ChangeLog.html +++ b/Resources/ChangeLog.html @@ -1,6 +1,6 @@ MagMan - Wood Warehouse Management System -

Versione: 1.0.2509.2219

+

Versione: 1.0.2509.2309


Note di rilascio:
  • diff --git a/Resources/VersNum.txt b/Resources/VersNum.txt index 0b32bd8..460440a 100644 --- a/Resources/VersNum.txt +++ b/Resources/VersNum.txt @@ -1 +1 @@ -1.0.2509.2219 +1.0.2509.2309 diff --git a/Resources/manifest.xml b/Resources/manifest.xml index 04348ef..6ace4c2 100644 --- a/Resources/manifest.xml +++ b/Resources/manifest.xml @@ -1,6 +1,6 @@ - 1.0.2509.2219 + 1.0.2509.2309 http://nexus.steamware.net/repository/SWS/MagMan/stable/0/MagMan.UI.zip http://nexus.steamware.net/repository/SWS/MagMan/stable/0/ChangeLog.html false