It is currently 21 April 2025, 14:37 Advanced search

Server session: esecuzione duplicata

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

Server session: esecuzione duplicata

Postby alessandro.cristoni » 28 February 2025, 9:01

Ciao a tutti,
da qualche tempo una server di sistema (timer con flag server session attivo) che ha sempre lavorato come atteso e gira giornalmente, ha iniziato a comportarsi in maniera anomala.
Sembra quasi che il codice contenuto venga eseguito due volte, seppur avendo aggiunto dei log, ho evidenza che la procedura sia lanciata una volta sola.
Affermo questo perché al termine della procedura viene inviata una email e mi ritrovo sia due email in casella sia due log di invio email distinti.
Ultima indicazione che posso fornire, questa 'duplicazione' non avviene ad ogni occorrenza, ma a volte si comporta ancora come atteso, ovvero con un solo invio.

Riassumendo: ho una server session che scatta 1 volta sola, con un codice che sembra essere eseguito 2 volte in quanto vedo il risultato atteso duplicato e tale anomalia non si presenta ad ogni occorrenza.

Qualcuno ha avuto esperienze analoghe con timer e server session?

Grazie!
Alessandro Cristoni
alessandro.cristoni
 
Posts: 50
Joined: 10 February 2016, 15:49

Re: Server session: esecuzione duplicata

Postby Micropedia » 28 February 2025, 10:32

anche a me a volte capita
Marco Ilardi
Imprenditore digitale
Image
User avatar
Micropedia
 
Posts: 1287
Joined: 4 February 2018, 11:56
Location: Napoli

Re: Server session: esecuzione duplicata

Postby guidobaiocchi » 28 February 2025, 11:13

succede anche a me e non riesco a capire il motivo
guidobaiocchi
 
Posts: 6
Joined: 4 August 2016, 10:01

Re: Server session: esecuzione duplicata

Postby Micropedia » 28 February 2025, 11:41

visto che inde non e' cambiato di recente io credo che sia qualche aggiornamento dell'OS
Marco Ilardi
Imprenditore digitale
Image
User avatar
Micropedia
 
Posts: 1287
Joined: 4 February 2018, 11:56
Location: Napoli

Re: Server session: esecuzione duplicata

Postby smuser » 3 March 2025, 9:03

Si tratta di applicazione C# su IIS?

Il timer è configurato per partire una volta al giorno? La frequenza con cui ti accade il problema (ogni quanti giorni)?

La procedura eseguita nella server session quanto tempo impiega?
User avatar
smuser
 
Posts: 289
Joined: 3 May 2019, 10:41
Location: Milano

Re: Server session: esecuzione duplicata

Postby alessandro.cristoni » 3 March 2025, 11:32

smuser wrote:Si tratta di applicazione C# su IIS?

Sì, c# su iis
smuser wrote:Il timer è configurato per partire una volta al giorno? La frequenza con cui ti accade il problema (ogni quanti giorni)?

Il timer serve più procedure durante la giornata e quindi scatta ogni 10 minuti; ne regolo una schedulazione interna mediante gestione software e parametri orari.
Solo una procedura delle varie servite dal timer ha questa anomalia. La frequenza è aleatoria; non denoto uno schema. Sono però in 'rottura prolungata' da una settimana.
Update sulla duplicazione del codice: dal 28 febbraio compreso invece che 2 volte ho evidenza giri 3 volte.
smuser wrote:La procedura eseguita nella server session quanto tempo impiega?

La procedura impiega più dei 10' impostati nel timer a completare tutte le operazioni.

Grazie!
Alessandro Cristoni
alessandro.cristoni
 
Posts: 50
Joined: 10 February 2016, 15:49

Re: Server session: esecuzione duplicata

Postby smuser » 3 March 2025, 12:46

L'applicazione non esegue altre server session? (Siano esse altri timer con il flag server session che server session lanciate da codice)

Quando dice che il timer serve più procedure intendi dire che dalla procedura che è associata al timer vai a chiamare sequenzialmente le varie procedure servite? Immagino che verifichi se la chiamata è da effettuare o meno in base al fatto che la schedulazione relativa sia trascorsa, ma se le schedulazioni sono ricorrenti come fai a capire che l'hai già eseguita (o che è già in esecuzione)? Non è che per qualche motivo il timer dopo vede ancora la schedulazione in attesa di essere eseguita e riparte?

Il fatto che dal 28 parta 3 volte può dipendere dal fatto che per qualche ragione si sono allungati i tempi di esecuzione?

Scusa se insisto su questi punti ma da quello che dici sembra un problema dell'applicazione ma difficile darti un consiglio sapendo così poco.
User avatar
smuser
 
Posts: 289
Joined: 3 May 2019, 10:41
Location: Milano

Re: Server session: esecuzione duplicata

Postby smuser » 3 March 2025, 17:15

Sono andato a rivedermi un thread dove avevo approfondito un po' i timer grazie a Diego Pierangeli. (https://forum.instantdeveloper.com/viewtopic.php?f=5&t=87892&hilit=timer)

Il timer scatta per ogni server session attiva. Se per qualche ragione l'applicazione ha altre server session attive, oltre a quella legata all'applicazione, la procedura associata al timer (in gergo il timer) partira una volta per ogni server session e le due esecuzioni andranno in parallelo.

Per sapere se sono nella server session di applicazione (di questa ce n'è una sola) verifico se sessionName == "nome applicazione", altrimenti esco senza fare elaborazioni.
User avatar
smuser
 
Posts: 289
Joined: 3 May 2019, 10:41
Location: Milano

Re: Server session: esecuzione duplicata

Postby alessandro.cristoni » 3 March 2025, 17:45

smuser wrote:L'applicazione non esegue altre server session? (Siano esse altri timer con il flag server session che server session lanciate da codice)

L'applicazione esegue altre server session con un meccanismo del tutto analogo a quello che sto descrivendo
smuser wrote:Quando dice che il timer serve più procedure intendi dire che dalla procedura che è associata al timer vai a chiamare sequenzialmente le varie procedure servite? Immagino che verifichi se la chiamata è da effettuare o meno in base al fatto che la schedulazione relativa sia trascorsa, ma se le schedulazioni sono ricorrenti come fai a capire che l'hai già eseguita (o che è già in esecuzione)? Non è che per qualche motivo il timer dopo vede ancora la schedulazione in attesa di essere eseguita e riparte?

La risposta è affermativa per tutto; vado ad aggiornare dei parametri quando le procedure sono completate così non vengono ripetute.
Il dubbio che la procedura ripartisse è stato il primo, in quanto già successo in passato, ma non mi sembra sia questa la casistica perché loggo l'inizio procedura e ne vedo solo 1 di occorrenze. mi aspetterei, girasse 2 volte, di vedere due log.

smuser wrote:Il fatto che dal 28 parta 3 volte può dipendere dal fatto che per qualche ragione si sono allungati i tempi di esecuzione?

Non posso escluderlo... anche se sapendo la logica mi aspetterei il contrario, in quanto buona parte delle elaborazioni riguarda totali del mese. Quindi ok per il 28, ma 1 marzo è sicuramente durata meno.Aggiungo come info che il timestamp delle email che ricevo, le quali sono il mio riferimento per dire che il comportamento viene ripetuto, distano randomicamente tra stesso orario e pochi minuti dopo, comunque un lasso di tempo inferiore al completamento delle procedure 
smuser wrote:Scusa se insisto su questi punti ma da quello che dici sembra un problema dell'applicazione ma difficile darti un consiglio sapendo così poco.

Figurati, anzi ti ringrazio tanto per l'interessamento e per gli spunti che comunque mi fanno già vedere punti di vista nuovi.
Alessandro Cristoni
alessandro.cristoni
 
Posts: 50
Joined: 10 February 2016, 15:49

Re: Server session: esecuzione duplicata

Postby alessandro.cristoni » 3 March 2025, 18:01

smuser wrote:Il timer scatta per ogni server session attiva. Se per qualche ragione l'applicazione ha altre server session attive, oltre a quella legata all'applicazione, la procedura associata al timer (in gergo il timer) partira una volta per ogni server session e le due esecuzioni andranno in parallelo.
Per sapere se sono nella server session di applicazione (di questa ce n'è una sola) verifico se sessionName == "nome applicazione", altrimenti esco senza fare elaborazioni.


Grazie, voglio giustamente approfondire.
Anche se in prima battuta mi vien da dire che mi aspetto tutto giri con stesso sessionname in quanto non lancio di thread, flaggo solo server session nei timer.
Oltre al fatto che non mi spiego l'assenza di un secondo o terzo log... ma approfondisco e metto su log differenti!
Alessandro Cristoni
alessandro.cristoni
 
Posts: 50
Joined: 10 February 2016, 15:49


Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: Google [Bot] and 65 guests