Hi,
Using PostgreSQL 9.6.1, compiled by Visual C++ build 1800, 64-bit on a
Laptop running Windows 10 64bit OS with pro series SSD and 8GB RAM. Setup is
fetched from EnterpriseDB. I am a software developer and this is a system is
only used by me.
Goolge searches were not helpful for the log message I receive.
I have below postgresql.conf parameters (only listing some of them):
max_connections = 100
shared_buffers = 512MB
work_mem = 87381kB
maintenance_work_mem = 512MB
dynamic_shared_memory_type = Windows
wal_buffers = 16MB
max_wal_size = 100MB
min_wal_size = 100MB
checkpoint_completion_target = 0.5
effective_cache_size = 2GB
default_statistics_target = 100
When establishing a connection to the database, I frequently get error
messages in my application log saying:
2017-01-27 12:47:41.908 *** (10054) Error on data reading from the
connection: An existing connection was forcibly closed by the remote host.
Socket Error Code: 10054($2746)
I read a FATAL marked line in postgresql log file at exact same second:
2017-01-27 12:47:41 +03 FATAL: failed to set up event for socket: error
code 10038
Application is self-closing upon receiving such error. I instantly re-run it
(to continue my code tests) and sometimes it is 3-4 times until I can get my
application running.
I am using latest version of Devart Universal Database Access Components
(UniDAC) for performing database operations. As far as I know, these
components make direct connection to PostgreSQL. Nothing in between like
ODBC or anything. If that is relevant.
When I was investigating my problem, I also read following lines in the
postgresql log file:
2017-01-27 12:22:34 +03 LOG: using stale statistics instead of current ones
because stats collector is not responding
2017-01-27 12:27:35 +03 LOG: using stale statistics instead of current ones
because stats collector is not responding
2017-01-27 12:29:51 +03 LOG: using stale statistics instead of current ones
because stats collector is not responding
2017-01-27 12:30:51 +03 LOG: using stale statistics instead of current ones
because stats collector is not responding
2017-01-27 12:32:35 +03 LOG: using stale statistics instead of current ones
because stats collector is not responding
My questions are:
1- I understand that PostgreSQL is closing the connection. What may cause
for such a connection error, and how to solve it?
2- These "stale statistics" messages in log file, are they anything
important? Is there a way to stop them being logged because they seem to
grow log file.
Thanks.
Ertan Küçükoğlu