Ciao a tutti,
mi rendo perfettamente conto che questo potrebbe essere un post più adatto al
forum, però penso anche che l'argomento (e la discussione che spero ne
scaturisca), meriti una visibilità maggiore. Una visibilità da Blog ;->.
Già da tempo mi ponevo questa domanda, ma stò per affrontare un progetto in
cui dovrò implementare per l'appunto un tipico sistema di booking in una
applicazione multiutente e mi piacerebbe conoscere il parere di voi esìmi
colleghi a tal proposito.
La situazione tipica potrebbe essere la prenotazione di posti per il cinema.
La sala contiene 200 posti. Il call center ha 5 postazioni. Immaginiamo che le
informazioni sui posti liberi siano in un DB server e ogni postazione abbia una
applicazione client Windows Forms.
Tizio telefona e vuole prenotare 4 posti, risponde l'operatrice 1.
Contemporaneamente telefona Caio, che ha bisogno di 2 posti, risponde
l'operatrice 3.
L'operatrice 1 verifica i posti liberi e individua per il cliente Tizio
i posti nella fila G n. 1, 2, 3 e 4.
L'operatrice 3 verifica i posti liberi e individua per il cliente Caio i
posti nella file G n. 3 e 4 (l'operatrice 3 non può sapere che l'operatrice
1 ha individuato gli stessi posti).
Al momento di salvare le modifiche nel DB si verifica ovviamente un
overbooking e, chiaramente vince l'operatrice che ha scritto per prima nel
DB.
OK, l'operatrice che ha scritto per ultima, eventualmente individuerà altri
posti liberi, ma se si ripetesse la medesima situazione, ad esempio, con
l'operatrice 2? e se i posti disponibili fossero nel frattempo terminati ?
Ovviamente non si può mettere un lock esclusivo su tutti i posti liberi.
La discussione è aperta.
powered by IMHO