Compartilhar via


Bloqueando e desbloqueando bancos de dados (XMLA)

Você pode bloquear e desbloquear bancos de dados usando, respectivamente, os comandos Lock e Unblock no XMLA (XML for Analysis). Normalmente, outros comandos do XMLA bloqueiam e desbloqueiam objetos automaticamente quando necessário para concluir o comando durante a execução. Você pode bloquear ou desbloquear um banco de dados explicitamente para executar vários comandos em uma única transação, como um comando Batch, enquanto impede que outros aplicativos confirmem uma transação de gravação no banco de dados.

Bloqueando bancos de dados

O comando Lock bloqueia um objeto, para uso compartilhado ou exclusivo, no contexto da transação ativa no momento. Um bloqueio em um objeto impede que as transações sejam confirmadas até que o bloqueio seja removido. O Microsoft SQL Server Analysis Services dá suporte a dois tipos de bloqueios, bloqueios compartilhados e bloqueios exclusivos. Para obter mais informações sobre os tipos de bloqueio suportados pelo Analysis Services, consulte Elemento Mode (XMLA).

O Analysis Services permite apenas o bloqueio de bancos de dados. O elemento Object deve conter uma referência de objeto a um banco de dados do Analysis Services. Se o elemento Object não for especificado ou se o elemento Object se referir a um objeto diferente de um banco de dados, ocorrerá um erro.

Observação sobre segurançaObservação sobre segurança

Apenas administradores de banco de dados ou de servidor podem emitir um comando Lock explicitamente.

Outros comandos emitem um comando Lock implicitamente em um banco de dados do Analysis Services. Qualquer operação que leia dados ou metadados de um banco de dados, como qualquer método Discover ou um método Execute executando um comando Statement, emitirá implicitamente um bloqueio compartilhado no banco de dados. Qualquer transação que confirme alterações em dados ou em metadados em um objeto de um banco de dados Analysis Services, como um método Execute que esteja executando um comando Alter, emitirá implicitamente um bloqueio exclusivo no banco de dados.

Desbloqueando objetos

O comando Unlock remove um bloqueio estabelecido dentro do contexto da transação ativa no momento.

Observação sobre segurançaObservação sobre segurança

Apenas administradores de banco de dados ou de servidor podem emitir um comando Unlock explicitamente.

Todos os bloqueios são mantidos no contexto da transação atual. Quando a transação atual é confirmada ou revertida, todos os bloqueios definidos dentro da transação são liberados automaticamente.