ClientContextId property

Contains a client context identifier (CCID), which can identify a user login session and its associated identity and application context.

Data type: CHARACTER

Access: PUBLIC Readable/Writeable

Applies to: Progress.Lang.OERequestInfo class

Every AppServer client automatically generates a 22-character, Base64-encoded UUID value for this property as an initial value when the client creates the Server object handle for the AppServer (using the CREATE SERVER statement). This initial value is generated regardless of the operating mode of the AppServer and is used to set the ClientContextId property on the Progress.Lang.OERequestInfo instance referenced by the REQUEST-INFO attribute on the server object handle.

The client sends the value of this property to the AppServer when it connects to the AppServer using the CONNECT( ) method (AppServer) on the server handle and when it calls a remote external procedure using the RUN statement. The AppServer session can then retrieve this value by reading this property on the Progress.Lang.OERequestInfo instance referenced by the on the SESSION system handle.

You can also customize the behavior of this setting. In the:

When setting a custom CCID value for this property, you can use the following assignment to obtain a 22-character, Base64-encoded UUID value:

DEFINE VARIABLE ccid AS CHARACTER NO-UNDO.
ccid= SUBSTRING(BASE64-ENCODE (GENERATE-UUID), 1, 22).

However, you only need to use a non-blank character string with enough uniqueness to satisfy the requirements of your application architecture.

In whatever way an initial or new CCID value for this property is set, during each client request to the AppServer, the current value is automatically copied from the OERequestInfo instance referenced by the CURRENT-REQUEST-INFO attribute on the AppServer's SESSION handle to the instance reference by the CURRENT-RESPONSE-INFO attribute and returned to the client using the instance referenced by the RESPONSE-INFO attribute on the client's server object handle (or for an asynchronous request, on the asynchronous request object handle available in the asynchronous event procedure), which is then automatically copied to the instance referenced by the REQUEST-INFO attribute on the client's server object handle when the client makes its next remote request.

So, at any point in this round trip, a new value can be set through the AppServer's CURRENT-RESPONSE-INFO attribute before the request ends, or through the client's REQUEST-INFO attribute before the client's next remote request begins, and the new value continues its journey between client and AppServer and back, again, with each request.

Notes

See also

CURRENT-REQUEST-INFO attribute, CURRENT-RESPONSE-INFO attribute, REQUEST-INFO attribute, RESPONSE-INFO attribute