我遇到的问题是我的PostgreSQL实例经常在我的应用程序运行后的某个时候停止工作。通过重新启动PostgreSQL的Windows服务,我能够重新开始工作,但我需要知道是什么让我的postgres实例停止工作。PostgreSQL服务停止工作
通过查看日志的Postgres,我得到这个错误(其中包括):
"FATAL: could not reattach to shared memory (key=348, addr=01E70000): 487
2012-04-25 11:05:24 PDT WARNING: worker took too long to start; cancelled"
这是我工作的情况。我正在使用在PostgreSQL(8.3)数据库上进行一些处理的WCF服务。每10秒钟有2个“客户”机器使用此Web服务。
从客户端应用程序,我初始化网络服务像
RemoteServiceClient service = new RemoteServiceClient();
在网络服务方面,在每一个初始化我做Postgres的连接的新实例。在这里,我不打开连接,只有初始化:
public class Service : IService
{
NpgsqlConnection connection = null;
/// <summary>
/// Default constructor for remote service
/// </summary>
public Service()
{
connection = new NpgsqlConnection(Utils.DBConnectionString);
}
}
在我的Web服务的功能,我打开&密切的联系需要,这样一来我不离开的飞行打开的连接。通过查看机器使用Web服务时的常见活动,我注意到只有大约3-4个连接(没有DB活动发生时为空闲)。我检查了postgres的默认设置,“max_connections”设置为100.
我真的很难与这个问题,任何帮助,将不胜感激!
谢谢!
检查您的版本,我劝你还是问PostgreSQL的论坛:http://archives.postgresql.org/pgsql-general/ – leonbloy 2012-04-26 02:32:36
你应该尽快升级。 8.3将在明年初取消支持。在Windows上,9.x更好 – 2012-04-26 06:50:30