Como Disponibilizar um Bloqueio num Objeto com Capacidade Para SEDO
Para lançar um bloqueio explícito num objeto ativado pelo SEDO
Criar um exemplo da
SMS_ObjectLock
classe WMIObtenha o objeto de parâmetros do método para o
ReleaseLock
método.Atribua o caminho do objeto do objeto que deseja desbloquear para a
ObjectRelPath
propriedade.Criar uma
InvokeMethodOptions
instância de objeto. Na propriedade Contexto, adicione um par de nome/valor. O nome deve ser "MachineName" e o valor deve ser o nome do computador que liberta o bloqueio. Para mais informações, consulte Como Adquirir uma Fechadura num Objeto SEDO-EnabledLigue para InvocarMethod sobre o
SMS_ObjectLock
caso.Invocar oMethod vai devolver uma
SMS_ObjectLockRequest
instância. Consulte asRequestState
propriedades e propriedades para obter maisLockState
informações sobre o sucesso ou falha do pedido.
Exemplo
O exemplo a seguir liberta uma fechadura numa SMS_ConfigurationItem
instância do objeto.
class Program
{
static void Main(string[] args)
{
ManagementScope scope = new ManagementScope(@"\siteservername\root\sms\site_ABC");
ReleaseLock(scope);
}
public static void ReleaseLock(ManagementScope scope)
{
ManagementPath path = new ManagementPath("SMS_ObjectLock");
ManagementClass objectLock = new ManagementClass(scope, path, null);
ManagementBaseObject inParams = objectLock.GetMethodParameters("ReleaseLock");
inParams["ObjectRelPath"] = "SMS_ConfigurationItem.CI_ID=30";
InvokeMethodOptions options = new InvokeMethodOptions();
options.Context.Add("MachineName", "RequestingComputer");
ManagementBaseObject result = objectLock.InvokeMethod("ReleaseLock", inParams, options);
}
}
O SMS_ObjectLockRequest objeto contém as seguintes propriedades:
Propriedade | Descrição |
---|---|
RequestID | Identificador único do pedido. |
ObjectRelPath | O caminho do objeto para o qual é solicitada a fechadura. |
Estado de Pedido | Indica o sucesso ou insucesso do pedido. |
Estado do Bloqueio | Indica o estado atual do bloqueio solicitado. |
DesignadoUser | Indica o utilizador atualmente designado do bloqueio solicitado. |
DesignadoObjectLockContext | Indica o ObjectLockContext a que o bloqueio está atualmente atribuído. |
Atribuição de Aachina | Indica o computador atualmente designado do bloqueio solicitado. |
Código de Site Atribuído | Indica o local atual do bloqueio solicitado. |
DesignadoTimeuTC | Indica a hora em que o bloqueio solicitado foi atribuído. |
Estado de Pedido
A tabela abaixo apresenta os valores do estado de pedido possíveis. Os estados de pedido concedidos, GrantedAfterTimeout e GrantedLockWasOrphaned indicam um pedido bem sucedido e o utilizador pode então fazer e guardar modificações no objeto. Todos os outros pedidos indicam erro.
RequestStateID | Nome do Estado do Pedido |
---|---|
0 | Desconhecido |
2 | Pedido |
3 | SolicitadoCanceled |
4 | RespostaSRecebidas |
10 | Concedido |
11 | ConcedidoAfterTimeout |
12 | ConcedidoLockWasOrphaned |
20 | NegadoLockAlreadyAssigned |
21 | NegaInvalidObjectVersion |
22 | NegadoLockNotFound |
23 | NegadoLockNotLocal |
24 | RecusadoRequestTimedOut |
50 | Erro |
52 | ErrorRequestNotFound |
53 | ErrorRequestTimedOut |
Estado do Bloqueio
A tabela abaixo apresenta os possíveis valores do estado de bloqueio.
LockStateID | LockStateName |
---|---|
0 | Não atribuído |
1 | Atribuído |
2 | Pedido |
3 | Inscrição pendente |
4 | TimedOut |
5 | NotFound |
A Compilar o Código
O exemplo C# requer:
Espaços de nomes
Sistema
Sistema.Gestão
Assemblagem
Programação Robusta
Para obter mais informações sobre o tratamento de erros, consulte Sobre erros do Gestor de Configuração.