When a client migrates to a new server while waiting for results, the new server invokes the SRV_MIGRATE_RESUME event after the client connection has successfully migrated. If the migration request failed or is cancelled, the event is invoked from the original server.
In the SRV_MIGRATE_RESUME event handler, your application does not have to send any actual result to the client, except for the SRV_DONE_FINAL result type that must always be sent. The only result that the default SRV_MIGRATE_RESUME sends to the client is SRV_DONE_FINAL.
This is an example of a SRV_MIGRATE_RESUME event handler:
/*
** Simple migrate_resume event handler.
*/
CS_RETCODE CS_PUBLIC
migrate_resume_handler(SRV_PROC *sp)
{
CS_RETCODE ret;
ret = srv_senddone(sp, SRV_DONE_FINAL,
CS_TRAN_COMPLETED, 0);
if (ret == CS_FAIL)
{
...
}
return CS_SUCCEED;
}
...
/*
** Install the migrate-resume event handler
*/
srv_handle(server, SRV_MIGRATE_RESUME,
migrate_resume_handler);
...