Skip to content

Commit

Permalink
Avanzamento versione 3.7.6-SNAPSHOT
Browse files Browse the repository at this point in the history
Corretti log per tutti i batch, viene ora stampata a info l'abilitazione dell'operazione, lo start e la fine dell'esecuzione.
  • Loading branch information
pintorig committed Dec 1, 2023
1 parent 4d084cd commit bcae632
Show file tree
Hide file tree
Showing 51 changed files with 384 additions and 468 deletions.
2 changes: 1 addition & 1 deletion ear/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>bom</artifactId>
<groupId>it.govpay</groupId>
<version>3.7.5</version>
<version>3.7.6-SNAPSHOT</version>
</parent>

<artifactId>ear</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion jars/api-commons/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<parent>
<artifactId>jars</artifactId>
<groupId>it.govpay</groupId>
<version>3.7.5</version>
<version>3.7.6-SNAPSHOT</version>
</parent>

<artifactId>api-commons</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion jars/appio-beans/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<artifactId>jars</artifactId>
<groupId>it.govpay</groupId>
<version>3.7.5</version>
<version>3.7.6-SNAPSHOT</version>
</parent>

<artifactId>appio-beans</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion jars/client-api-ente/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>jars</artifactId>
<groupId>it.govpay</groupId>
<version>3.7.5</version>
<version>3.7.6-SNAPSHOT</version>
</parent>

<artifactId>client-api-ente</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion jars/core-beans/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<parent>
<artifactId>jars</artifactId>
<groupId>it.govpay</groupId>
<version>3.7.5</version>
<version>3.7.6-SNAPSHOT</version>
</parent>

<artifactId>core-beans</artifactId>
Expand Down
2 changes: 1 addition & 1 deletion jars/core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
<parent>
<artifactId>jars</artifactId>
<groupId>it.govpay</groupId>
<version>3.7.5</version>
<version>3.7.6-SNAPSHOT</version>
</parent>

<artifactId>core</artifactId>
Expand Down
87 changes: 41 additions & 46 deletions jars/core/src/main/java/it/govpay/core/business/BatchManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,22 +34,22 @@
import it.govpay.model.Batch;

public class BatchManager {

private BatchManager() {}

private static Logger log = LoggerWrapperFactory.getLogger(BatchManager.class);

public static boolean startEsecuzione(BDConfigWrapper configWrapper, String codBatch) throws ServiceException {
log.debug(MessageFormat.format("Verifico possibilita di avviare il batch {0}", codBatch));
log.debug("Verifico possibilita di avviare il batch {}", codBatch);

// Se non ho configurato l'id del cluster, non gestisco i blocchi.
if(GovpayConfig.getInstance().getClusterId() == null) {
log.debug("ClusterId non impostato. Gestione concorrenza non abilitata. Avvio batch consentito");
log.info("ClusterId non impostato. Gestione concorrenza non abilitata. Avvio batch {} consentito", codBatch);
return true;
}
BatchBD batchBD = null;
BatchBD batchBD = new BatchBD(configWrapper);

try {
batchBD = new BatchBD(configWrapper);

// inizializzo connessione
batchBD.setupConnection(configWrapper.getTransactionID());

Expand All @@ -67,7 +67,7 @@ public static boolean startEsecuzione(BDConfigWrapper configWrapper, String codB

if(batch == null) {
// Batch libero. Procedo a configurare il blocco
log.debug(MessageFormat.format("Semaforo {0} verde!!! Imposto rosso [{1}]", codBatch, GovpayConfig.getInstance().getClusterId()));
log.debug("Semaforo {} verde!!! Imposto rosso [{}]", codBatch, GovpayConfig.getInstance().getClusterId());
batch = new Batch();
batch.setCodBatch(codBatch);
batch.setInizio(new Date());
Expand All @@ -76,24 +76,25 @@ public static boolean startEsecuzione(BDConfigWrapper configWrapper, String codB
try {
batchBD.update(batch);
batchBD.commit();
log.debug(MessageFormat.format("Impostato semaforo rosso per il batch {0} inserito per il nodo {1}.", codBatch, GovpayConfig.getInstance().getClusterId()));
log.debug("Impostato semaforo rosso per il batch {} inserito per il nodo {}.", codBatch, GovpayConfig.getInstance().getClusterId());
log.info("Avvio batch {} sul nodo {} consentito", codBatch, GovpayConfig.getInstance().getClusterId());
return true;
} catch (NotFoundException e) {
batchBD.insert(batch);
batchBD.commit();
log.debug(MessageFormat.format("Impostato semaforo rosso per il batch {0} inserito per il nodo {1}.", codBatch, GovpayConfig.getInstance().getClusterId()));
log.debug("Impostato semaforo rosso per il batch {} inserito per il nodo {}.", codBatch, GovpayConfig.getInstance().getClusterId());
log.info("Avvio batch {} sul nodo {} consentito", codBatch, GovpayConfig.getInstance().getClusterId());
return true;
}
} else {
log.debug(MessageFormat.format("Semaforo rosso impostato dal nodo [{0}]. Esecuzione interrotta sul nodo [{1}]", batch.getNodo(), GovpayConfig.getInstance().getClusterId()));
log.debug("Semaforo rosso impostato dal nodo [{}]. Esecuzione interrotta sul nodo [{}]", batch.getNodo(), GovpayConfig.getInstance().getClusterId());
log.info("Avvio batch {} sul nodo {} non consentito", codBatch, GovpayConfig.getInstance().getClusterId());
batchBD.commit();
return false;
}
} finally {
if(batchBD != null) {
// chiusura connessione
batchBD.closeConnection();
}
// chiusura connessione
batchBD.closeConnection();
}
}

Expand All @@ -105,21 +106,21 @@ private static Batch getRunningBatch(BatchBD batchBD, String codBatch) throws Se
return null;

try{
log.trace(MessageFormat.format("lettura batch {0} in corso...", codBatch));
log.trace("lettura batch {} in corso...", codBatch);
batch = batchBD.get(codBatch);
log.trace(MessageFormat.format("lettura batch {0} completata", codBatch));
log.trace("lettura batch {} completata", codBatch);
} catch(NotFoundException nfe) {
// Non c'e' un blocco, quindi non e' in esecuzione
log.trace(MessageFormat.format("lettura batch {0} completata, blocco non trovato, batch non in esecuzione", codBatch));
log.trace("lettura batch {} completata, blocco non trovato, batch non in esecuzione", codBatch);
return null;
}

if(batch.getNodo() == null) {
// Non c'e' un blocco, quindi non e' in esecuzione
log.trace(MessageFormat.format("lettura batch {0} blocco non trovato, batch non in esecuzione", codBatch));
log.trace("lettura batch {} blocco non trovato, batch non in esecuzione", codBatch);
return null;
} else {
log.trace(MessageFormat.format("lettura batch {0} blocco presente, verifica timeout esecuzione", codBatch));
log.trace("lettura batch {} blocco presente, verifica timeout esecuzione", codBatch);
// C'e' un blocco.
// Verifico se e' scaduto
long inizio = batch.getInizio().getTime();
Expand All @@ -128,22 +129,22 @@ private static Batch getRunningBatch(BatchBD batchBD, String codBatch) throws Se
long delay = new Date().getTime() - aggiornamento;

if(delay > GovpayConfig.getInstance().getTimeoutBatch()) {
log.warn(MessageFormat.format("Individuato timeout del batch {0}. La risorsa viene liberata per consentire l''esecuzione del batch.", codBatch));
log.warn("Individuato timeout del batch {}. La risorsa viene liberata per consentire l''esecuzione del batch.", codBatch);
return null;
} else {
log.debug(MessageFormat.format("Batch {0} in esecuzione sul nodo {1}.", codBatch, batch.getNodo()));
log.debug("Batch {} in esecuzione sul nodo {}.", codBatch, batch.getNodo());
return batch;
}
}
}

public static void stopEsecuzione(BDConfigWrapper configWrapper, String codBatch) {
BatchBD batchBD = null;
log.debug("Stop esecuzione batch " + codBatch);
log.debug("Stop esecuzione batch {}" , codBatch);
try {
// Se non ho configurato l'id del cluster, non gestisco i blocchi.
if(GovpayConfig.getInstance().getClusterId() == null) {
log.debug("ClusterId non impostato. Gestione concorrenza non abilitata. Rimozione semaforo inibita");
log.info("ClusterId non impostato. Gestione concorrenza non abilitata. Terminazione batch {} consentita senza rimozione del semaforo", codBatch);
return;
}

Expand Down Expand Up @@ -175,21 +176,20 @@ public static void stopEsecuzione(BDConfigWrapper configWrapper, String codBatch
batch.setAggiornamento(null);
batchBD.update(batch);
batchBD.commit();
log.debug(MessageFormat.format("Semaforo di concorrenza per il batch {0} rimosso.", codBatch));
log.debug("Semaforo di concorrenza per il batch {} rimosso.", codBatch);
log.info("Stop batch {} sul nodo {}", codBatch, GovpayConfig.getInstance().getClusterId());
} else {
// blocco non mio. lo lascio fare
log.warn(MessageFormat.format("Errore nella rimozione del semaforo di concorrenza per il batch {0}: semaforo di altro nodo", codBatch));
log.warn("Errore nella rimozione del semaforo di concorrenza per il batch {}: semaforo di altro nodo", codBatch);
batchBD.commit();
return;
}
} catch (NotFoundException nfe) {
// strano... vabeh...
log.debug(MessageFormat.format("stop esecuzione batch {0} errore nella rimozione del semaforo di concorrenza: semaforo non presente.", codBatch));
log.warn(MessageFormat.format("Errore nella rimozione del semaforo di concorrenza per il batch {0}: semaforo non presente", codBatch));
return;
log.debug("stop esecuzione batch {} errore nella rimozione del semaforo di concorrenza: semaforo non presente.", codBatch);
log.warn("Errore nella rimozione del semaforo di concorrenza per il batch {}: semaforo non presente", codBatch);
}
} catch(Throwable se) {
log.error(MessageFormat.format("Errore nella rimozione del semaforo di concorrenza per il batch {0}", codBatch), se);
log.error(MessageFormat.format("Errore nella rimozione del semaforo di concorrenza per il batch {}", codBatch), se);
} finally {
if(batchBD != null) {
// chiusura connessione
Expand All @@ -204,22 +204,20 @@ public static void aggiornaEsecuzione(BDConfigWrapper configWrapper, String codB

public static void aggiornaEsecuzione(BDConfigWrapper configWrapper, String codBatch, String msg) throws ServiceException {
if(msg == null) {
log.trace(MessageFormat.format("aggiorna esecuzione batch {0}", codBatch));
log.trace("aggiorna esecuzione batch {}", codBatch);
} else {
log.trace(MessageFormat.format("aggiorna esecuzione batch {0}: {1}", codBatch, msg));
log.trace("aggiorna esecuzione batch {}: {}", codBatch, msg);
}

// Se non ho configurato l'id del cluster, non gestisco i blocchi.
if(GovpayConfig.getInstance().getClusterId() == null) {
log.debug("ClusterId non impostato. Gestione concorrenza non abilitata. Aggiornamento non necessario");
log.info("ClusterId non impostato. Gestione concorrenza non abilitata. Aggiornamento non necessario per il batch {}", codBatch);
return;
}

BatchBD batchBD = null;

try {
batchBD = new BatchBD(configWrapper);
BatchBD batchBD = new BatchBD(configWrapper);

try {
// inizializzo connessione
batchBD.setupConnection(configWrapper.getTransactionID());

Expand All @@ -235,24 +233,21 @@ public static void aggiornaEsecuzione(BDConfigWrapper configWrapper, String codB
Batch batch = getRunningBatch(batchBD, codBatch);

if(batch != null && GovpayConfig.getInstance().getClusterId().equals(batch.getNodo())) {
log.trace(MessageFormat.format("aggiorna esecuzione batch {0} aggiornamento in corso...", codBatch));
log.trace("aggiorna esecuzione batch {} aggiornamento in corso...", codBatch);
batch.setAggiornamento(new Date());
batchBD.update(batch);
batchBD.commit();
log.debug(MessageFormat.format("Aggiornato semaforo rosso per il batch {0} inserito per il nodo {1}.", codBatch, GovpayConfig.getInstance().getClusterId()));
return;
log.debug("Aggiornato semaforo rosso per il batch {} inserito per il nodo {}.", codBatch, GovpayConfig.getInstance().getClusterId());
log.info("Continuo esecuzione batch {} sul nodo {}", codBatch, GovpayConfig.getInstance().getClusterId());
} else {
log.trace(MessageFormat.format("aggiorna esecuzione batch {0}: non trovato eseguo solo il commit.", codBatch));
log.trace("aggiorna esecuzione batch {}: non trovato eseguo solo il commit.", codBatch);
batchBD.commit();
}
} catch (NotFoundException e) {
log.error(MessageFormat.format("Errore nell''aggiornamento del semaforo di concorrenza per il batch {0}", codBatch), e);
return;
log.error(MessageFormat.format("Errore nell''aggiornamento del semaforo di concorrenza per il batch {}", codBatch), e);
} finally {
if(batchBD != null) {
// chiusura connessione
batchBD.closeConnection();
}
// chiusura connessione
batchBD.closeConnection();
}
}
}

0 comments on commit bcae632

Please sign in to comment.