When an ABL client application executes a remote persistent, single-run, or singleton procedure, two procedure handles are created: one within the client application session, and another separate handle within the server session where the external procedure is created. OpenEdge internally maintains a mapping between the two handles. The handle within the client application is a proxy procedure handle; its PROXY attribute and its PERSISTENT, SINGLE-RUN, or SINGLETON attribute are set to TRUE, but its REMOTE attribute is FALSE. The handle within the server session is a remote procedure handle; its REMOTE attribute and the PERSISTENT, SINGLE-RUN, or SINGLETON attribute are set to TRUE, but its PROXY attribute is FALSE.
Unlike persistent procedure handles used for local procedures, 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.