Symptoms

Unable to access BA. The following error appears in the CP:

Error Message
PSSDBImpl: your call failed due to database server connectivity problem. The application has restored the connection. Please, retry your call.

The error can be found in logs:


[15-04-09 21:27:29.383 ADict TH19352 NTE] Language::get("PSSDBImpl: your call failed due to database server connectivity problem. The application has restored the connection. Please, retry your call.") = NOTFOUND [15-04-09 21:27:29.383 ADict TH19352 ERR] Exception while clear of expired sessions '10AException'. what(): PSSDBImpl: your call failed due to database server connectivity problem. The application has restored the connection. Please, retry your call.

^H

It raises in the BM::GetGlobalWarnings method.

Cause

The issue is that BA attempts to reuse earlier created postgresql connection, but it does not check their current status. If the database process does not exist or does not "answer" (the request does not reach postgresql), method just fails, it does not attempt to initiate a new connection to the db.

This behavior has been reported to the OSA maintenance team as internal issue PBA-66084.

It was found out that previously established TCP connections are dropped on system level (tcp_keepalive_time parameter.)

Resolution

Usually problem is solved by itself. It is necessary to try to switch to BA again.

As a workaround towards tuning tcp timeout, one may adjust this setting by editing /etc/sysctl.conf and adding the following line:

net.ipv4.tcp_keepalive_time=xx

where xx is the timeout value in seconds.

The default value is: tcp_keepalive_time = 7200 (seconds)

Internal content