my.ASPItalia.com
ASP.NET
|
HTML5
|
LINQ e Entity Framework
|
Silverlight
|
Windows Phone
|
.NET Framework
|
Libro WP7
|
Libro HTML5
|
Corso on-site HTML5
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Lab
Media
Tutorials
Corsi
Libri
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
lock di un record
in
Misc
>
SQL Server e MySQL
Ultimo messaggio
1
2
3
>>
laurar181
il 2 settembre 2010 alle 15:13
434 messaggi
dal 08 aprile 2009
Salve.
Ho la necessità di effettuare un lock su una tabella.
utilizzo le transazione ed ho impostato il IsolationLevel a Serializable.
Il problema è che il lock avviene al primo aggiornamento di un record mentre io lo devo loccare nel momento in cui lo leggo.
Devo per forza fare un update fantasma?
Rispondi
Quoting
mizrael
il 2 settembre 2010 alle 15:18
347 messaggi
dal 14 ottobre 2008
Contributi
davideguida.netne.net
Che versione di sql stai usando? è MS o MySql?
Davide Guida
Developer, Data Manager @ Publicis Healthware
http://davideguida.netne.net
Rispondi
Quoting
laurar181
il 2 settembre 2010 alle 15:31
434 messaggi
dal 08 aprile 2009
MS 2005
Rispondi
Quoting
mizrael
il 2 settembre 2010 alle 15:35
347 messaggi
dal 14 ottobre 2008
Contributi
davideguida.netne.net
In generale non è mai buona norma inserire business logic nel db. Ti consiglierei di inserire un timestamp a bordo del record e gestire il lock a livello di applicazione.
Davide Guida
Developer, Data Manager @ Publicis Healthware
http://davideguida.netne.net
Rispondi
Quoting
laurar181
il 2 settembre 2010 alle 15:45
434 messaggi
dal 08 aprile 2009
ok.
è un servizio web.
Che intendi per timestamp???
Rispondi
Quoting
mizrael
il 2 settembre 2010 alle 15:48
347 messaggi
dal 14 ottobre 2008
Contributi
davideguida.netne.net
potresti usare un campo bit per indicare semplicemente che il record è "bloccato", oppure se vuoi maggiori info, un campo datetime nullable che indica, se diverso da NULL, la data esatta dell'ultima operazione di lock
Davide Guida
Developer, Data Manager @ Publicis Healthware
http://davideguida.netne.net
Rispondi
Quoting
laurar181
il 2 settembre 2010 alle 16:07
434 messaggi
dal 08 aprile 2009
Si avevo pensato anche a questo ma il problema è che se un record è bloccato la richiesta deve rimanere in attesa fino a che è blollato.
Adesso ho fatto questa prova:
1.Apro la transazione
2.Faccio una update fantasma sul record in modo tale che viene bloccato
3.Effetto tutte le operazioni e se vado in errore faccio il rollback in modo tale che sblocca il record
4.Faccio l'update effettiva
5.Commit
Ho fatto il test lanciando due processi. Arriva il primo e fino a che non effettua l'update fantasma non viene bloccato il record.
Il secondo processo rimane in attesa fino a quando il primo non ha terminato e legge i dati aggiornati dal primo.
Mi sembra una buona soluzione per il mio problema solo che se succede qualcosa tipo va in crash il servizio il record potrebbe rimanere bloccato e essendo pubblicato su un dominio register non gestisco io il motore del data base.
Rispondi
Quoting
mizrael
il 2 settembre 2010 alle 16:09
347 messaggi
dal 14 ottobre 2008
Contributi
davideguida.netne.net
potresti creare una coda delle richieste ed elaborarla in un thread secondario gestito da un servizio sul server. In questo modo le richieste vengono inviate senza bloccare l'interfaccia (se presente) e gestite in maniera sequenziale senza problemi
Davide Guida
Developer, Data Manager @ Publicis Healthware
http://davideguida.netne.net
Rispondi
Quoting
1
2
3
>>
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
Libri
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
E-commerce
OT
Commenti: blogs e notizie
Eventi
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.
In primo piano
Speciale Silverlight 5: tutte le novità
Rilasciato il bollettino MS11-100 per risolvere i problemi di attacchi DoS di ASP.NET
Speciale Razor: il nuovo view engine di WebMatrix e ASP.NET MVC
I più letti di oggi
Microsoft WebCamp - Roma, Milano
Real Code Day 6 - Firenze
Gestire il supporto all'intellisense JavaScript in Visual Studio 2010
Windows Phone 7.5 Developer Day with Nokia and Microsoft - Roma, Milano
Mono 0.18 con un mod_mono per Apache
Ricavare il valore massimo di una colonna in un database
Media
Windows Phone 7.5 Developer Day: marketplace e strumenti per monetizzare le app
Windows Phone 7.5 Developer Day: costruire app con Visual Studio 2010 e Windows Phone Runtime
Tutti i media
In evidenza
Speciale Silverlight 5: tutte le novità
Community Days 2012 - Milano
Sviluppare applicazioni per Windows Phone: scopri come fare con il nostro nuovissimo libro!
Sviluppa le applicazioni del futuro oggi: impara con il nostro libro HTML5 Espresso!
SkyDrive API: video slide show basato sul .NET Framework
Animare la rotazione di un'immagine dentro un canvas in HTML5
Migliorare le prestazioni sul caricamento delle immagini in Windows Phone 7.1
Gestire il supporto all'intellisense JavaScript in Visual Studio 2010
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network