Consultor Eletrônico



Kbase P128860: Clients cannot connect to state-reset AppServer after some period of time.
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   3/15/2010
Status: Verified

SYMPTOM(s):

Clients cannot connect to state-reset AppServer after some period of time.

Connection failure for host <host_name> port <port> transport <transport_name>. (9407)

When errors occur, some users are able to connect to this AppServer without receiving an error.

After multiple connection attempts, all clients attempting to connect to the AppServer will start receiving errors.

Application Service <Application Service> not found at NameServer at Host <Host> Port <Port>. (8245)

Application server connect failure. (5468)

AppService = <Application Service> Found = <boolean> Number Of Brokers = <Count>. (8206)

AppService = AS.appsrv Found = False Number Of Brokers = 1. (8206)

Unregistering Broker <Broker Name>. (8210)

AppServer Broker no longer communicating with NameServer

FACT(s) (Environment):

Trimming the AppServers does not change the behavior.
Restarting the AppServer Broker resolves the issue for a period of time.
SCO UnixWare 7.1.4
OpenEdge 10.0B05 Service Pack

CAUSE:

Bug# OE00165147

CAUSE:

The keepAlive thread within the AppServer Broker process is sleeping longer than expected. The NameServer unregisters the AppServer Broker because it has not received a keepAlive message from the AppServer Broker process. If the AppServer Broker process awakes, it will send the keepAlive message to the NameServer. The NameServer will reregister the broker. If the AppServer Broker does not awake, then the NameServer will not reregister the AppServer. This means that the AppServer Broker will no longer be available to handle client requests as the NameServer is no longer able to communicate with the AppServer Broker.

FIX:

Progress does not control how long a Java Process sleeps. Contact the Operating System or Java vendor for additional assistance in identifying why a Java process is sleeping longer than expected. Contact Progress Technical Support, if the Operating System or Java vendor need our assistance in further isolation of the issue. Progress Technical Support is more than happy to assist the vendor as needed with regards to this issue.

A workaround that seems to reduce the number of occurrences of the issue is:

Increase the NameServer's brokerkeepAliveTimeout to be 30% greater than the AppServer Broker registrationRetry value in the ubroker.properties file.

Example:

Change the NameServer's brokerKeepAliveTimeout to 40 seconds and have the AppServer Broker's registrationRetry parameter remain at 30 seconds.

brokerKeepAliveTimeout=40
registrationRetry=30

Explanation of parameters (excerpt taken from the OpenEdge installation directory/properties/ubroker.properties.README file)

brokerKeepAliveTimeout
How often (in seconds) the NameServer checks its list of registered brokers to see which ones have timed out. For best performance, this value should be larger than the brokers' registrationRetry value.

registrationRetry
Time interval, in seconds, at which the NameServer expects to receive a message from the broker indicating that it is still alive. Once the NameServer receives a registration message from a broker, it must receive "keep alive" messages at the specified interval. Otherwise, it removes the broker from the list of application services.