Consultor Eletrônico



Kbase P10793: What is the -PendConnTime parameter?
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   2/3/2010
Status: Verified

GOAL:

What is the -PendConnTime parameter?

GOAL:

How to prevent connection issues caused by network problems

GOAL:

Where can information be found on the -PendConnTime connection parameter?

GOAL:

What does pending connections mean?

FACT(s) (Environment):

Progress 9.1B
Progress 9.1C
Progress 9.1D
OpenEdge 10.x
All Supported Operating Systems

FIX:

The use Pending Connection Time database startup parameter (-PendConnTime) can to prevent connection errors caused by network problems.

When a client attempts to connect to a Progress database, the RDBMS assumes that if the client can reach the broker, it can also reach the server. Network problems or incorrect configuration of network devices can prevent the client from reaching the server. In such an instance, the broker, unaware that the client's connection failed, continues to increment its count of connected users.

To prevent this problem, use the -PendConnTime parameter implemented in Progress 9.1B15 and above. Progress added the concept of a "reservation" for the client. The broker increments the "reservation" count on the server when it redirects the client. When the -PendConnTime parameter is used, the load balancing algorithm of the Progress Broker use the reservation count and the connected client in its decision making about what server should service the next client. The servers examine the timestamp on the latest reservation and, if the Pending Connection Time period has elapsed, the broker assumes that the client has failed to connect. The broker then clears the reservation, making the server available for new clients.
The default value for this reservation parameter is 0, (disabled) and any time that is set must be expressed in seconds.
There is a new column under PROMON dbname, R&D, Option 1, Option 3; used to determine if any server(s) have a pending user connection that has yet to be resolved.


For example:

Status: Servers
Sv Pend. Cur. Max. Port
No Pid Type Protocol Logins Users Users Users Num

0 1604 Login TCP 1637 0 0 3 2500
1 1788 Auto TCP 1392 0 0 3 3000
2 928 Auto TCP 245 0 0 3 3002
3 . 0 Inactive 0 0 0 0 0

Enter <return>, R, P, T, or X (? for help): In this situation the Broker has internally modified its count of clients which are logged in because an attempt for connection was made. The broker has either spawned another auto server or has notified the auto server that it is about to receive another client.

To enable the -PendConnTime parameter add the following to your database startup for each 4GL broker:


Syntax: -PendConnTime (seconds)
The time in seconds is the time allowed to the client to connect to a database server process. When the -PendConnTime is enabled, a counter is begun, when the counter elapses the auto server understands to modify its counts of pending client connections realizing that the client has not completed a successful connection. The broker is also updated to adjust its count of connected clients.

As of OpenEdge 10.1C03 and 10.2A01, this parameter will now be also acknowledged and used by _sqlsrv2 processes when dealing with SQL clients. Prior to these versions, this parameter only addressed 4GL client connection issues. This will now also be the default behavior for the _sqlsrv2 process. This means that whether the database startup parameter -PendConnTime is used or not, a default value of 30 seconds has been configured for the _sqlsrv2 process.

Note: -PendConnTime parameter is not listed in the Progress 9.x documentation for Startup Parameters.
To find information on the -PendConnTime startup parameter, see the OE10 OpenEdge Database Management: Database Administration manual. .