A client call to a c-treeACE Server that is configured as a local server (that is connected to a master c-treeACE Server) could hang after updating or deleting a record on the local server.
A call to the local server to update or delete a record may need to re-read the full record from the local server, however, the call to re-read the record writes the record image to the communication buffer, and the update or delete call then sends this record image to the client. But the client did not expect to receive a record image on an update or delete operation, and so the client became out of sync with the server with respect to the synchronous send and receive calls and would hang on a subsequent call to read a response from the server.
To avoid this out of sync communication, the communication buffer pointer is now saved and set to NULL before reading the record from the local server such such that the call to read the local record does not write to the communication buffer. After the call completes, the communication buffer pointer is then restored to its original value.