Consultor Eletrônico



Kbase P180715: What does the SESSION:SERVER-CONNECTION-ID attribute return when evaluated by a remote procedure run
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   1/18/2011
Status: Unverified

GOAL:

What does the SESSION:SERVER-CONNECTION-ID attribute return when evaluated by a remote procedure running on a state-free AppServer?

GOAL:

What is the format of the string returned by the SESSION:SERVER-CONNECTION-ID attribute of a remote procedure running on a state-free AppServer?

GOAL:

Do Remote 4GL/ABL procedures running on a state-free AppServer always and reliably return the SESSION:SERVER-CONNECTION-ID attribute in a specific format?

GOAL:

Can the value returned by the the SESSION:SERVER-CONNECTION-ID attribute in a Remote Progress procedure running on a state-free AppServer be used to create a new connection to the same state-free AppServer that it is being executed on and run another Remote Procedure on that new connection?

FACT(s) (Environment):

All Supported Operating Systems
OpenEdge 10.x
OpenEdge Category: Language (4GL/ABL)

FIX:

The SESSION:SERVER-CONNECTION-ID attribute when evaluated by a remote procedure running on a state-free AppServer returns the brokerHost, brokerName, brokerPort and UUID. The first field is the AppServer 'hostname'. This may be an IP address or a literal hostname, depending on the value of the registrationMode property of the broker. The values (brokerHost, brokerName, brokerPort, UUID) are separated by "::".

In some configurations, the brokerHost and brokerPort values of the SESSION:SERVER-CONNECTION-ID may be used to create another connection from an AppServer agent to the AppServer. However, this is NOT supported or reliable in the general case. Depending on the number of NICs in the machine, the number of DNS registration names used, the use of network address translation, and other factors, using these values may not always yield the desired behavior. A better and more general approach to solving this problem would be to configure the NameServer and application service information into the server application, and establish the connection using the NameServer.
Caveat emptor: The purpose of the SESSION:SERVER-CONNECTION-ID attribute is to uniquely identify a client connection. As such, development reserves the right to modify the contents of the SERVER-CONNECTION-ID at any time, for any reason. Therefore, code that depends on the current structure could break in future releases of OpenEdge if the internal format of the SERVER-CONNECTION-ID is changed.