Utilice el código de terminación más reciente de un objeto para determinar el resultado de una solicitud que su aplicación haya realizado sobre dicho 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.
}
En este ejemplo, la aplicación determina inicialmente cuando se ha realizado por última vez una acción en el intermediario, utilizando el método getTimeOfLastCompletionCode(). Este método devuelve la hora en que la topología ha recibido por última vez un código de terminación o, si no se han recibido códigos de retorno, un valor nulo. La aplicación actualiza la LongDescription del intermediario y luego supervisa constantemente la topología, en espera de que los resultados del mandato setLongDescription() se devuelvan al CMP. Cuando se devuelven los resultados, el control interrumpe el bucle while y se determina el último código de terminación.
Además de no ser adecuado para una aplicación de múltiples hebras, este algoritmo para determinar el resultado de mandatos no es eficaz, puesto que hace que la aplicación CMP espere hasta que el intermediario procese la solicitud.
Para conseguir una aplicación más eficiente, y que sea adecuada para un entorno de varias hebras, codifique el planteamiento alternativo que notificaciones de objetos administrados; consulte Comprobación de los resultados de la gestión de intermediarios con notificación de objetos en una aplicación de CMP.
Si lo prefiere, puede realizar cambios de propiedades de forma síncrona utilizando el método BrokerProxy.setSynchronous(). Al realizar cambios de propiedades síncronas, los métodos como, por ejemplo, setLongDescription(), no vuelven hasta que el intermediario ha procesado el cambio. Para obtener más información sobre los cambios síncronos de propiedades, consulte la descripción del método BrokerProxy.setSynchronous()) en la información Javadoc de la API de CMP.