When there are too many queries left open on the remote server, the remote server crashes because there is no more memory available to handle additional requests and hit the strent limit.
This happens because queries on the client application are not closed properly on the
client side.
- Each query a client connected to a remote client server creates a structure in the memory of the remote client server.
- The structure takes up a bit of memory for each query.
- Any queries left behind by clients or not released by clients tie up the memory. This will limit the number of future queries that can be handled by the Server.
- The watchdog code will to try to clean up after abnormally terminated client sessions, but there may not be an immediate identification of when a remote client has terminated.
- Application code can open a query without closing the query and therefore tie up the server memory as well and since this isn't an abnormal termination, the code introduced to release memory of terminated clients will do nothing to release these resources.
Data structures are larger on 64-bit versions, where it may not take as many open queries for this problem to occur in the newer versions of OpenEdge.