In che modo l'ora legale influisce sui trigger programmati
I trigger in esecuzione con una frequenza programmata passano automaticamente dall'ora solare (ST) all'ora legale (DST) in base al fuso orario del trigger. Tuttavia, è bene tenere presente in che modo il passaggio da ST a DST può influire sui trigger. A seconda del fuso orario e dell'ora di esecuzione programmata di un trigger, un cambio di orario potrebbe influire sul momento di esecuzione dei trigger o sull'esecuzione stessa.
Esempi
Trigger notturno programmato non correttamente
Si crea un trigger e lo si imposta in modo che venga eseguito alle 2:00 Mountain Time (UTC -6:00) ogni notte.
Un giorno di primavera, all'arrivo al lavoro, si scopre che il trigger non è stato eseguito. Il trigger non è riuscito perché dopo l'1:59, gli orologi hanno saltato le 2:00 e sono andati avanti alle 3:00, quindi l'ora programmata non è mai arrivata. Quindi, un giorno d'autunno, all'arrivo al lavoro si scopre che il trigger è stato eseguito due volte. Ciò è accaduto perché, dopo le 2:59, gli orologi sono tornati alle 2:00 e il trigger è stato eseguito di nuovo.
Trigger programmati non correttamente con dipendenze
Immaginiamo di far parte di una piccola azienda con alcuni uffici in Nord America. Non esiste un team dedicato al contrasto delle frodi, che vengono identificate sulla contabilità passiva grazie a trigger che reagiscono a schemi sospetti nei dati aziendali. Questi trigger vengono eseguiti ogni notte, in base ai nuovi dati del giorno precedente.
- Pagamenti duplicati cerca sospetti pagamenti duplicati superiori a 1.000 $ e assegna a questi record una priorità Alta. Questo trigger viene eseguito alle 2:00 Mountain Time.
- Invia notifica al controller cerca tutti i record con priorità Alta e invia una notifica al controller dell'azienda. Questo trigger dipende dai risultati di trigger come Pagamenti duplicati, quindi viene eseguito all'1:30 Pacific Time (trenta minuti dopo).
Un giorno d'autunno, all'arrivo al lavoro, si scopre che ci sono pagamenti duplicati ad alta priorità, ma il controller non ha ricevuto alcuna notifica. Ciò è accaduto perché dopo l'1:59, il Mountain Time è tornato all'1:00 ed è stato per un breve periodo coincidente con il Pacific Time. Di conseguenza, il comando Invia notifica al controller è stato eseguito prima di Pagamenti duplicati.
Consigli per garantire che i trigger vengano eseguiti come previsto
- Scoprire a quale ora inizia e finisce l'ora legale nei diversi fusi orari del trigger. Le diverse parti del mondo cambiano in momenti diversi e con diversi livelli di coordinamento.
- Evitare di pianificare i trigger durante le ore interessate dai cambiamenti di orario.
- Se i trigger dipendono dai risultati di altri trigger:
- Valutare la possibilità di scegliere un singolo fuso orario per tutti quei trigger, in modo che le dipendenze non vengano interrotte dai cambiamenti di orario; oppure
- Lasciare tempo sufficiente tra i trigger dipendenti in modo che, anche con i cambiamenti di orario, l'ordine di esecuzione non venga interrotto.