Previous Next

ClientContextId property
Contains a client context identifier (CCID), which can identify a user login session and its associated identity and application context.
Data type:
Access:
Applies to:
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:
*
*
You can set a custom CCID value for this property referenced through the REQUEST-INFO attribute both before connecting the AppServer and before calling a remote external procedure.
*
You can terminate any further transmission of this property value to the AppServer by setting the Unknown value (?) for this property referenced through the REQUEST-INFO attribute before making any remote external procedure calls to the AppServer.
*
*
You can have the AppServer set a custom CCID value for this property on the Progress.Lang.OERequestInfo instance referenced through the CURRENT-RESPONSE-INFO attribute on the SESSION system handle before the end of the current AppServer request. Then the client returns the AppServer custom value to the AppServer when running subsequent remote requests.
*
You can terminate any further transmission of this property value to the AppServer from the client by setting the Unknown value (?) for this property referenced through the CURRENT-RESPONSE-INFO attribute on the SESSION system handle before the end of the current AppServer request.
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:

Previous Next
© 2013 Progress Software Corporation and/or its subsidiaries or affiliates.