Blocco e sblocco di database (XMLA)

È possibile bloccare e sbloccare database utilizzando, rispettivamente, i comandi Lock e Unblock in XML for Analysis (XMLA). In genere, gli altri comandi XMLA bloccano e sbloccano automaticamente gli oggetti in base alle esigenze per completare il comando durante l'esecuzione. È possibile bloccare o sbloccare in modo esplicito un database per eseguire più comandi, ad esempio un comando Batch, all'interno di una transazione singola, impedendo ad altre applicazioni di eseguire il commit di una transazione di scrittura nel database.

Blocco di database

Il comando Lock blocca un oggetto, per utilizzo condiviso o esclusivo, all'interno del contesto della transazione attualmente attiva. Un blocco su un oggetto impedisce l'esecuzione del commit delle transazioni fino alla rimozione del blocco. In Microsoft SQL Server Analysis Services sono supportati due tipi di blocchi, condivisi ed esclusivi. Per ulteriori informazioni sui tipi di blocco supportati da Analysis Services, vedere Elemento Mode (XMLA).

Analysis Services consente solo che i database vengano bloccati. L'elemento Object deve contenere un riferimento all'oggetto a un database di Analysis Services. Se l'elemento Object non viene specificato oppure fa riferimento a un oggetto diverso da un database, si verifica un errore.

Nota sulla sicurezzaNota sulla sicurezza

Solo amministratori del database o amministratori del server possono eseguire in modo esplicito un comando Lock.

Gli altri comandi eseguono implicitamente un comando Lock su un database di Analysis Services. Qualsiasi operazione che legge dati o metadati da un database, ad esempio un metodo Discover oppure un metodo Execute che esegue un comando Statement, applica implicitamente un blocco condiviso al database. Qualsiasi transazione che esegue il commit delle modifiche in dati e metadati per un oggetto di un database di Analysis Services, ad esempio un metodo Execute che esegue un comando Alter, applica implicitamente un blocco esclusivo al database.

Sblocco di oggetti

Il comando Unlock rimuove un blocco applicato all'interno del contesto della transazione attualmente attiva.

Nota sulla sicurezzaNota sulla sicurezza

Solo gli amministratori del database o gli amministratori del server possono eseguire in modo esplicito un comando Unlock.

Tutti i blocchi vengono mantenuti nel contesto della transazione corrente. Quando viene eseguito il commit oppure il rollback della transazione corrente, tutti i blocchi definiti all'interno della transazione vengono rilasciati automaticamente.