23 messaggi dal 16 giugno 2008
Ciao a tutti,

non so se il titolo è precisamente azzeccato ma non mi veniva in mente altro
Sto realizzando un progetto in cui (so che non è il massimo) un utente durante l'inserimento di un caso (ambito medico) deve bloccare qualsiasi modifica da parte di altri utenti.
Purtroppo l'operazione ha una durata imprecisata (visto che il medico deve scrivere referti o diagnosi).
Sto usando Nhibernate e non ho ben capito come gestire la cosa.
Devo usare un approccio pessimistico no?
Ma come faccio con Nhibernate? E come faccio a capire che i record collegati hanno il lock in modo da mostrare magari agli altri utenti questa situzione per non mostrargli un messaggio a posteriori del tipo "un altro utente sta lavorando al caso"?

Spero di non essere stato troppo poco chiaro

Saluti a tutti e grazie
Ciao,

sebbene NHibernate supporti il lock pessimistico (ma dipende in ogni caso dal database che c'è sotto), IMHO utilizzarlo equivale a farsi del male da soli.

Nel tuo caso mi sembra molto più consona una gestione della concorrenza tramite field di version (nativamente supportata da NHibernate) + transazione in fase di flush.

Per la gestione di conflitti puoi utilizzare come spunto quest'ottimo articolo di Ayende su MSDN Magazine
http://msdn.microsoft.com/en-us/magazine/ee819139.aspx

Se invece vuoi proprio il lock pessimistico, potresti prevedere una sorta di stato "IN LAVORAZIONE" delle entità, ma poi devi gestire problematiche tipo l'utente che ti chiude il browser o l'applicazione che crasha lasciando l'entity impegnata. Magari potresti a questo punto semplificarti un po' la vita con Workflow Foundation, associando a queste entity dei workflow che prevedano i due stati "Lavorazione" e "Disponibile" impostando nel primo un timer allo scadere del quale l'entità ritorna di nuovo Disponibile. Ma ripeto, non è banale.

Ciao,
m.
23 messaggi dal 16 giugno 2008
Ciao Cradle,

grazie per la risposta, chiara e puntuale come sempre.
Devo dire che la seconda soluzione non mi dispiacerebbe, visto che sarebbe anche un'occasione per imparare ad utilizzare il Workflow Foundation, ma il tempo è tiranno
Sicuramente leggerò l'articolo che mi hai indicato nella speranza di risolvere il problema.

Grazie ancora e ciao

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.
Community
Ultimi messaggi
UTENTI ONLINE
In primo piano

I più letti di oggi

Media
In evidenza
MISC