Use o código de conclusão mais recente de um objeto para determinar o resultado de um pedido que seu aplicativo fez nesse objeto.
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 broker 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 atualiza a LongDescription do broker, em seguida, monitora continuamente a topologia, aguardando que os resultados do comando setLongDescription() sejam retornados ao CMP. Quando os resultados são retornados, o controle quebra o loop while e o último código de conclusão é determinado.
Além de não ser adequado para um aplicativo multiencadeado, esse algoritmo para determinar o resultado dos comandos é ineficiente, porque ele faz com que o aplicativo CMP espere enquanto o broker processa a solicitação.
Para obter um aplicativo mais eficiente, e um que seja adequado para um ambiente multiencadeado, codifique a abordagem alternativa que usa notificações de objeto administrado; consulte Verificando os Resultados do Gerenciamento do Broker com a Notificação do Objeto em um Aplicativo CMP.
Se você preferir, poderá fazer alterações na propriedade sincronamente usando o método methodBrokerProxy.setSynchronous(). Quando você fizer alterações síncronas na propriedade, métodos como setLongDescription() não retornarão até a alteração ter sido processada pelo broker. Para obter mais informações sobre as mudanças da propriedade síncrona, consulte a descrição do método BrokerProxy.setSynchronous()) nas informações Javadoc do CMP API.