Try OpenEdge Now
skip to main content
Developing AppServer Applications
Programming ABL Client Applications : Accessing client context regardless of session model : Managing context from the ABL client with OERequestInfo objects
 

Managing context from the ABL client with OERequestInfo objects

OpenEdge context information accessible by an ABL client provides:
*OpenEdge version information for the current ABL client — The client session can access the LOCAL-VERSION-INFO attribute on its SESSION system handle to find its OpenEdge Release information. This object reference attribute returns a Progress.Lang.OEVersionInfo class instance and its OEMajorVersion, OEMinorVersion, and OEMaintVersion properties provide the version information.
*OpenEdge AppServer version information on the current ABL client — This identifies the OpenEdge Release information for an AppServer that handles a remote request for the client. The client can access the Release information for a connected AppServer using the VersionInfo property on the OERequestInfo instance returned by the server object handle's RESPONSE-INFO attribute.
*Client context identifier for the next request — This is the value of the ClientContextId property on the OERequestInfo instance referenced by the server handle's REQUEST-INFO attribute when the client makes a remote request. The client application can change this value before each request, typically when the client is also an AppServer agent in order to propagate the originating client context identifier to yet another AppServer in a multi-tier application. Otherwise, by default, the value of the property available through the server handle's RESPONSE-INFO attribute is used from the most recent AppServer response. The next AppServer agent can retrieve this property value on the OERequestInfo instance referenced by the CURRENT-REQUEST-INFO attribute on its SESSION handle.
*Client context identifier for the most recent AppServer response — The client can access the client context identifier returned by the AppServer for the most recently executed request as the value of the ClientContextId property on the OERequestInfo instance referenced by the RESPONSE-INFO attribute on the server object handle (or the asynchronous object handle returned for an asynchronous request). This value can be different from the ClientContextId property value sent by the client for the most recently executed request if the AppServer changed the value for its response.
*Identifier for each request — The client automatically generates a globally unique identifier for each request in the RequestId property on the OERequestInfo instance referenced by the server handle's REQUEST-INFO attribute. The AppServer agent can read this property value on the OERequestInfo instance referenced by its SESSION handle's CURRENT-REQUEST-INFO or CURRENT-RESPONSE-INFO attribute. This value is read-only and cannot be changed by any application code.
*Identifier for the most recent request — The identifier for the previous request executed on a client's server object handle is the RequestId property value on the OERequestInfo instance referenced by the RESPONSE-INFO attribute on the server object handle (or the asynchronous object handle returned for an asynchronous request).
For more information on these class properties and handle attributes, see OpenEdge Development: ABL Reference.
In addition to maintaining context for a client and AppServer connection, you can use the client context identifier as the key to implementing several multi-tier security models. For more information, see Implementing multi-tier security models.