When an ABL client application executes a remote procedure, two procedure handles are created: one within the client application session and another separate handle within the AppServer session where the procedure is created. OpenEdge internally maintains a mapping between the two handles. The handle within the client application is a proxy procedure handle, and its PROXY attribute is set to TRUE. The handle's PERSISTENT, SINGLE-RUN, or SINGLETON attribute is set to TRUE for a persistent, single-run, or singleton procedure, respectively. The corresponding handle within the AppServer agent is a remote procedure handle, and its REMOTE attribute is set to TRUE. As with the proxy handle, the PERSISTENT, SINGLE-RUN, or SINGLETON attribute is set to TRUE for a persistent, single-run, or singleton procedure, respectively.
Unlike the values of procedure handles and the THIS-PROCEDURE handle that reference the same local procedure context, the proxy procedure handle and the remote procedure handle are truly separate handles. For example, setting the PRIVATE-DATA attribute on a remote procedure handle has no effect on the PRIVATE-DATA attribute of the corresponding proxy procedure handle in the client application.
For more information on the relationship between remote and proxy procedure handles, see the information on procedure handles in Design and Implementation Considerations.