152 messaggi dal 08 settembre 2006
Buonasera, ho a che fare con una struttura di questo tipo , un servizio web scritto con tecnologia .net scrive dei dati su alcune tabelle di 'frontiera', poi lancia un eseguibile (in delphi) da riga di comando che esegue altre operazioni sul medesimo database e comunica dei dati al servizio come risultato dell'elaborazione; durante l'esecuzione il programma eseguibile scrive in un log le operazioni svolte;

a mio parere questa struttura è una grossa sciocchezza in quanto il lancio dell'eseguibile fa perdere a tutto il processo il controllo eventualmente esercitato dal server web in cui è pubblicato il servizio inoltre attualmente il processo è eseguito da un solo utente e una circa una volta al mese cioè il suo utilizzo è circoscritto, vorrei capire però quali potrebbero essere le implicazioni qualora il servizio fosse invocato da più utenti, quindi aprendo più sessioni, contemporaneamente; nello specifico il file di log gestito dall'eseguibile quali problemi potrebbe dare? e il lancio contemporaneo del medesimo file eseguibile cosa potrebbe comportare?

grazie per gli eventuali pareri e suggerimenti.
Modificato da bryger il 23 ottobre 2018 21.28 -
Modificato da bryger il 23 ottobre 2018 21.30 -
256 messaggi dal 30 novembre 2004
Non è ho la certezza ma l'eseguibile non risulterebbe già in esecuzione?
152 messaggi dal 08 settembre 2006
Sì, questo è uno dei miei dubbi e anche sulla gestione del log avrei qualche perplessità..... aspettiamo altri pareri
Modificato da bryger il 24 ottobre 2018 09.27 -
Modificato da bryger il 24 ottobre 2018 09.27 -
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
se l'eseguibile è invocato da più utenti è possibile che le due o più istanze cerchino di scrivere contemporaneamente sullo stesso file di log. Che cosa può succedere a questo punto non è dato saperlo, bisognerebbe chiedere allo sviluppatore che ha realizzato l'eseguibile.

Nel caso più pessimistico, lo sviluppatore non ha gestito l'eccezione che si verifica quando si prova a scrivere su un file già bloccato per la scrittura da un'altra istanza, e quindi crasherà. Se è questo il caso non potrai invocare l'eseguibile direttamente ma dovrai realizzare una sorta di coda e un componente centrale che scoderà le richieste di esecuzione e le lavorerà una alla volta.

Nel caso più ottimistico, lo sviluppatore ha previsto questa possibilità o ha addirittura consentito di specificare il percorso del file di log come argomento da riga di comando. In questo caso ti basta specificare un diverso nome file, così che i log restino ben isolati.

ciao,
Moreno

Enjoy learning and just keep making
152 messaggi dal 08 settembre 2006
Ciao Moreno,
secondo me comunque anche se fosse stata prevista la concorrenza sul log direi che la struttura non è proprio ideale, sei d'accordo?, molto meglio fare tutto nel servizio oppure addirittura, visto che tutto quanto lavora nella medesima rete, fare una dll da includere nell'applicativo principale ? (che è quello che invoca attualmente il servizio web), inoltre direi che se anche il sistema di scrittura del log funzionasse bisognerebbe che all'eseguibile fossero passati dati sul chiamante, utente, sessione, ip o altro altrimenti se tutte le informazioni fossero inserite nel log 'a diritto' dubito che qualcuno potrebbe capirci qualcosa leggendolo
Modificato da bryger il 24 ottobre 2018 22.59 -
11.886 messaggi dal 09 febbraio 2002
Contributi
certo, se hai la possibilità di integrare quella logica nel servizio (o in una dll) sarebbe la cosa migliore. Se hai il sorgente dell'eseguibile sarà più facile portarlo in C#/VB.NET.

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.