[Openais] Application using AMF hang when sending
saAmfHealthcheckConfirm...
Ola Lundqvist
ola.lundqvist at tietoenator.com
Wed Sep 20 02:55:21 PDT 2006
Hi
The following code is used:
void healthcheckCallback(SaInvocationT invocation,
const SaNameT * componentName,
SaAmfHealthcheckKeyT * healthCheckKey)
{
SaAisErrorT result;
fprintf(stderr,"Healthcheck ");
printSaName(componentName);
fprintf(stderr, "\n");
/* First send response */
fprintf(stderr, " resp \n");
result = _retrySaAmfResponse(saAmfHandle, invocation, SA_AIS_OK);
if (result != SA_AIS_OK)
{
fprintf(stderr,"healthCheck respond error: response res is
%d\n", result);
return;
}
do {
fprintf(stderr, " C\n");
result = saAmfHealthcheckConfirm(saAmfHandle,
componentName,
healthCheckKey,
SA_AIS_OK);
if (result == SA_AIS_ERR_TRY_AGAIN) {
fprintf(stderr,"%d: TRY_AGAIN received\n", getpid());
usleep (100000);
}
} while (result == SA_AIS_ERR_TRY_AGAIN);
if (result != SA_AIS_OK)
{
fprintf(stderr,"healthCheck confirm error: response res is
%d\n", result);
return;
}
fprintf(stderr, "healthCheck respond with ok (conf and response)\n");
}
I get the " C" printout but not the "healthCheck respond with ok" printout.
So from what I can determine the saAmfHealthcheckConfirm hang the process.
Then amf detect this and try to restart the process. However as it is
stalled it can not restart it. I do not know why, more than it may not
be able to restart it as it is stalled...
Is there any known problems with this function. (I'm using trunk, and
have also tried with 0.80.1 version).
Regards,
// Ola
--
Ola Lundqvist, Civilingenjör Informationsteknologi
TietoEnator R&D Services AB, Telecom Platforms
Email: ola.lundqvist at tietoenator.com
Phone: +46 (0)54-29 42 17
More information about the Openais
mailing list