Verrouillage et déverrouillage de bases de données (XMLA)

Vous pouvez verrouiller et déverrouiller les bases de données en utilisant, respectivement, les commandes Lock et Unlock de XML for Analysis (XMLA). En règle générale, les autres commandes XMLA verrouillent et déverrouillent automatiquement les objets, selon le cas, pour faire aboutir la commande pendant l'exécution. Vous pouvez verrouiller ou déverrouiller explicitement une base de données pour exécuter plusieurs commandes dans une même transaction, par exemple, une commande Batch, tout en empêchant d'autres applications de valider une transaction d'écriture dans la base de données.

Verrouillage de bases de données

La commande Lock verrouille un objet, pour un usage partagé ou exclusif, dans le contexte de la transaction actuellement active. Un verrou sur un objet empêche la validation des transactions aussi longtemps que le verrou n'est pas supprimé. Microsoft SQL Server Analysis Services prend en charge deux types de verrous : les verrous partagés et les verrous exclusifs. Pour plus d'informations sur les types de verrous pris en charge dans Analysis Services, consultez Élément Mode (XMLA).

Analysis Services autorise uniquement le verrouillage des bases de données. L'élément Object doit contenir une référence d'objet à une base de données Analysis Services. Si l'élément Object n'est pas spécifié ou si cet élément Object fait référence à un objet autre qu'une base de données, une erreur survient.

Remarque relative à la sécuritéRemarque relative à la sécurité

Seuls les administrateurs de base de données ou de serveur peuvent émettre une commande Lock de manière explicite.

D'autres commandes permettent d'émettre une commande Lock dans une base de données Analysis Services de manière implicite. Toute opération qui lit les données ou les métadonnées d'une base de données (par exemple, n'importe quelle méthode Discover ou Execute exécutant une commande Statement) émet implicitement un verrou partagé dans la base de données. Toute transaction qui valide les modifications apportées aux données ou aux métadonnées d'un objet dans une base de données Analysis Services (par exemple, une méthode Execute exécutant une commande Alter) émet implicitement un verrou exclusif dans la base de données.

Déverrouillage d'objets

La commande Unlock supprime un verrou établi dans le contexte de la transaction actuellement active.

Remarque relative à la sécuritéRemarque relative à la sécurité

Seuls les administrateurs de bases de données ou de serveurs peuvent émettre une commande Unlock de manière explicite.

Tous les verrous sont conservés dans le contexte de la transaction en cours. Lors de la validation ou de la restauration de la transaction en cours, tous les verrous définis dans celle-ci sont libérés automatiquement.