PostgreSQL服务停止工作

时间:2012-04-26 02:27:59

标签: .net database wcf web-services postgresql

我遇到的问题是我的PostgreSQL实例经常在我的应用程序运行后停止工作。通过重新启动PostgreSQL Windows服务,我可以让它再次运行,但我需要知道是什么让我的postgres实例停止工作。

通过查看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"

这是我正在研究的方案。我正在使用一个WCF服务,在PostgreSQL(8.3)数据库上进行一些处理。每10秒就有2台'客户'计算机正在使用此Web服务。

从客户端应用程序我正在初始化像

这样的Web服务
RemoteServiceClient service = new RemoteServiceClient();

在Web服务端,在每次初始化时,我都会创建postgres连接的新实例。这里我没有打开连接,只是初始化:

public class Service : IService
{
    NpgsqlConnection connection = null;

    /// <summary>
    /// Default constructor for remote service
    /// </summary>
    public Service()
    {
        connection = new NpgsqlConnection(Utils.DBConnectionString);
    }
}

在我的网络服务功能中,我打开&amp;根据需要关闭连接,这样我就不会动态打开连接。通过查看机器正在使用Web服务时的常见活动,我注意到只有大约3-4个连接(没有DB活动时发生IDLE)。我检查了postgres默认设置,“max_connections”设置为100。

我真的很难解决这个问题,任何帮助都会受到赞赏!

谢谢!

1 个答案:

答案 0 :(得分:3)

此问题有bugfix in version 8.3.8(发布日期:2009-09-09):

  

修复Windows共享内存分配代码(Tsutomu Yamada,Magnus)

     

这个错误导致经常报道的“无法重新连接到共享   记忆“错误信息。

使用SELECT version();

检查您的版本