In entrambi i modelli di blocco dati, il blocco viene rilasciato dopo aver eseguito il commit delle modifiche sul database.
Per impostazione predefinita, Rational ClearQuest utilizza il blocco ottimistico.
Rational ClearQuest versione 7.1 aggiunge un supporto per il blocco pessimistico, che fornisce un meccanismo per evitare situazioni in cui utenti multipli possano modificare simultaneamente un record. Forzando la modifica sequenziale dei record, il modello di blocco pessimistico garantisce il blocco degli utenti che tentano di aggiornare simultaneamente lo stesso record. Per abilitare il blocco pessimistico, è necessario creare o aggiornare il repository di schemi e i database utente associati alla funzione livello 7 e lo sviluppatore di schema deve aggiungere il codice hook ai tipi di record desiderati nello schema. Per ulteriori informazioni sulla modifica dello schema, consultare la guida per lo sviluppo di schemi con Rational ClearQuest Designer e il riferimento API Rational ClearQuest.
Le seguenti sezioni descrivono dettagliatamente le differenze tra blocco ottimistico e pessimistico.
Il modello di blocco ottimistico, indicato anche come controllo ottimistico della concorrenza, è un metodo di controllo della concorrenza utilizzato nei database relazionali che non utilizzano blocco di record. Il blocco ottimistico consente ad utenti multipli di aggiornare lo stesso record senza informare gli utenti che anche altri stanno tentando di aggiornare il record. Le modifiche apportate al record vengono convalidate solo quando si esegue il commit del record. Se un utente aggiorna correttamente il record, gli altri utenti che tentano di eseguire il commit dei propri aggiornamenti simultanei vengono informati dell'esistenza di un conflitto.
Un vantaggio del modello di blocco ottimistico è rappresentato dal fatto che esso consente di evitare l'overhead del blocco di un record per la durata dell'azione. Se non vi sono aggiornamenti simultanei, questo modello fornisce aggiornamenti rapidi.
Il blocco ottimistico è un approccio utile quando si prevedono aggiornamenti di record simultanei non frequenti o se l'overhead di blocco è elevato. Nell'implementazione del blocco ottimistico di Rational ClearQuest, quando utenti multipli modificano un record simultaneamente, dopo aver eseguito il commit delle modifiche di un utente, le modifiche dell'altro utente vengono rifiutate e i conflitti dati devono essere salvati ed uniti manualmente.
Il modello di blocco pessimistico impedisce gli aggiornamenti simultanei dei record. Non appena un utente inizia ad aggiornare un record, tale record viene bloccato. Gli altri utenti che tentano di aggiornare questo record vengono informati che è in corso un aggiornamento da parte di un altro utente. Gli altri utenti devono attendere fino al completamento dell'esecuzione del commit delle modifiche del primo utente, al termine del quale viene rilasciato il blocco del record. Solo allora un altro utente può apportare delle modifiche sulle modifiche dell'utente precedente.
Un vantaggio del modello di blocco pessimistico è rappresentato dal fatto che esso evita il problema della risoluzione dei conflitti impedendo che si verifichino. Gli aggiornamenti sono serializzati e ogni aggiornamento successivo inizia con le modifiche di record apportate dall'utente precedente sottoposte a commit.
Il blocco pessimistico è un approccio utile quando gli aggiornamenti successivi possono essere rimandati fino al completamento di un aggiornamento precedente. Questo di solito comporta l'esecuzione degli aggiornamenti in un intervallo di tempo breve.