Performance-related issues for the DISCONNECT( ) method
On a bound session-managed connection, the DISCONNECT( ) method has no significant performance impact on your client application regardless of whether there is an server Disconnect procedure defined. The server Disconnect procedure is run by the PAS for OpenEdge server after the client connection is terminated and DISCONNECT( ) method execution has completed. That is, unlike other procedures executed in a server session, the server Disconnect procedure is run for a bound session-managed connection concurrently with processing occurring in the client application.
For a bound session-managed connection, you might be able to take advantage of the way the PAS for OpenEdge Disconnect procedure is run to improve overall application performance. When designing your distributed application, consider tasks to be performed by a PAS for OpenEdge instance that could be performed independently of the connection between the client application and the PAS for OpenEdge instance. These tasks would typically be ones where the client application does not require any information about the success or failure of the operation. Time-consuming actions are very good candidates for consideration. By moving these tasks to the PAS for OpenEdge Disconnect procedure, these actions can be performed concurrently with other client application processing, improving overall application performance.
On an unbound session-managed connection, any defined Disconnect procedure runs before the client connection is terminated. Thus, especially for frequent and short-duration connections, you probably want to ensure that the Disconnect procedure does not perform any processing that significantly delays the execution of the DISCONNECT( ) method. This can both impact the client and delay the availability of the server session to handle other client requests.
In a session-free application, the DISCONNECT( ) method has minimal performance impact because no Disconnect procedure is executed.