From ac2d1b9e642def1bf2c0a17c371bf69bffe42917 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 31 Jan 2020 17:14:26 +0100 Subject: [PATCH] Update oggetti lettura DB x evitare sovrapposizioni datareader --- Jenkinsfile | 2 +- MapoDb/DataLayer.cs | 26 ++++++++++++++++---------- MapoDb/MapoDb.cs | 5 ++++- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 5c0296c9..1f304eda 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -12,7 +12,7 @@ pipeline { steps { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=1279']) { + withEnv(['NEXT_BUILD_NUMBER=1281']) { // env.versionNumber = VersionNumber(versionNumberString : '6.9.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true) env.versionNumber = VersionNumber(versionNumberString : '6.9.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.APP_NAME = 'MAPO' diff --git a/MapoDb/DataLayer.cs b/MapoDb/DataLayer.cs index 636a855e..2c1ebcb4 100644 --- a/MapoDb/DataLayer.cs +++ b/MapoDb/DataLayer.cs @@ -201,7 +201,7 @@ namespace MapoDb #region Inizializzazione - protected DataLayer() + public DataLayer() { initTA(); setupConnectionStringBase(); @@ -1670,7 +1670,10 @@ namespace MapoDb } else { - answTab = MapoDb.obj.currStatoMaccTab(idxMacchina); + // 2020.01.31 uso nuovo oggetto connessione + MapoDb man = new MapoDb(); + answTab = man.currStatoMaccTab(idxMacchina); + //answTab = MapoDb.obj.currStatoMaccTab(idxMacchina); // salvo in redis... rCall = JsonConvert.SerializeObject(answTab); int currStatoMaccCacheDur = memLayer.ML.CRI("currStatoMaccCacheDur"); @@ -2029,24 +2032,24 @@ namespace MapoDb } // variabile x controllo dati recuperati DS_ProdTempi.StatoProdDataTable datiProdAct = null; - bool odlFound = false; + bool okDatiProd = false; int taSP_ms_ant = memLayer.ML.cdvi("taStatoProd_ms_anticipo"); DateTime dataRif = DateTime.Now.AddMilliseconds(-taSP_ms_ant); - odlFound = getStatoProd(idxMacchina, ref datiProdAct, dataRif); + okDatiProd = getStatoProd(idxMacchina, ref datiProdAct, dataRif); // se NON avesse recuperato --> aspetto taSP_ms_ant e poi RICHIAMO procedura... int maxTry = 3; - while (!odlFound && maxTry > 0) + while (!okDatiProd && maxTry > 0) { logger.lg.scriviLog(string.Format("[pzCounterTC] Impossibile recuperare dati ODL x idxMacchina {0}", idxMacchina), tipoLog.ERROR); // sleep... - System.Threading.Thread.Sleep(taSP_ms_ant); + System.Threading.Thread.Sleep(taSP_ms_ant*2); // riprovo lettura... - odlFound = getStatoProd(idxMacchina, ref datiProdAct, dataRif); + okDatiProd = getStatoProd(idxMacchina, ref datiProdAct, dataRif); maxTry--; } // ora proseguo SE ho trovato i dati... - if (odlFound) + if (okDatiProd) { // ...a questo punto recupero DAVVERO i dati (o almeno ci provo...) try @@ -2077,8 +2080,11 @@ namespace MapoDb bool answ = false; try { - // recupero con stored NUOVA... - datiProdAct = DataLayer.obj.taStatoProd.GetData(idxMacchina, dataRif); + //2020.01.31 NUOVO oggetto singleton + DataLayer man = new DataLayer(); + datiProdAct = man.taStatoProd.GetData(idxMacchina, dataRif); + //// recupero con stored NUOVA... + //datiProdAct = DataLayer.obj.taStatoProd.GetData(idxMacchina, dataRif); if (datiProdAct.Rows.Count > 0) { // solo SE ho idxODL (altrimenti loggo errore) diff --git a/MapoDb/MapoDb.cs b/MapoDb/MapoDb.cs index c4aa02ca..2eed9771 100644 --- a/MapoDb/MapoDb.cs +++ b/MapoDb/MapoDb.cs @@ -479,7 +479,10 @@ namespace MapoDb logger.lg.scriviLog("Recupero currStatoMaccTab da DB!", tipoLog.INFO); try { - answ = DataLayer.obj.taStatoMacchine.GetDataByIdxMacchina(idxMacchina); + // 2020.01.31 creo nuovo obj x lettura + DataLayer man = new DataLayer(); + answ = man.taStatoMacchine.GetDataByIdxMacchina(idxMacchina); + //answ = DataLayer.obj.taStatoMacchine.GetDataByIdxMacchina(idxMacchina); } catch (Exception exc) {