Isto faz parte da tarefa maior de desenvolver aplicativos do Configuration Manager Proxy (CMP).
GregorianCalendar oldCCTime = b.getTimeOfLastCompletionCode(); b.setLongDescription(newDesc); GregorianCalendar newCCTime = oldCCTime; while ((newCCTime == null) || (newCCTime.equals(oldCCTime))) { newCCTime = b.getTimeOfLastCompletionCode()); Thread.sleep(1000); } CompletionCodeType ccType = b.getLastCompletionCode(); if (ccType == CompletionCodeType.success) { // etc. }
Nesse exemplo, o aplicativo determina inicialmente quando uma ação no intermediário foi concluído pela última vez, utilizando o método getTimeOfLastCompletionCode(). Esse método retorna o tempo em que a topologia recebeu pela última vez um código de conclusão ou, se nenhum código de retorno tiver sido recebido, um valor nulo. O aplicativo tenta atualizar o LongDescription do intermediário e, em seguida, monitora continuamente a topologia aguardando pelos resultados do comando setLongDescription() a ser retornado para o CMP. Quando isso ocorrer, o controle vai interromper o loop while e o último código de conclusão será determinado.
Além de ser inadequado para um aplicativo multiencadeado, este algoritmo para determinar o resultado de comandos é ineficiente, pois faz o aplicativo CMP aguardar enquanto o Gerenciador de Configuração processa o pedido.
Uma maneira melhor de fazer isso é utilizar notificações de objetos administrados; consulte Verificando os Resultados do Gerenciamento de Domínios Intermediários Utilizando o Configuration Manager Proxy com Notificação de Objetos.