2012-04-26 80 views
1

私の問題は、アプリケーションが動作してから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秒ごとにこのWebサービスを使用する2台のクライアントマシンがあります。私はPostgresの接続の新しいインスタンスを作成し、すべての初期化時に、Webサービス側で

RemoteServiceClient service = new RemoteServiceClient(); 

などのWebサービスを初期化していたクライアントアプリケーションから

。ここで私は、接続を開くわけではないだけで初期化:

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アクティビティが発生していない場合はIDLE)にしか気づきません。私はpostgresのデフォルト設定をチェックし、 "max_connections"は100に設定されています。

私はこの問題で本当に苦労しています。

ありがとうございます!

+0

を使用してバージョンを確認し、私はPostgreSQLのフォーラムで尋ねることをアドバイス:あなたはできるだけ早くアップグレードする必要があり – leonbloy

+3

http://archives.postgresql.org/pgsql-general/。 8.3は来年初めからサポートを外します。 9.xはWindows上ではるかに優れています –

答えて

3

bugfix in version 8.3.8(発売日:2009-09-09)があり、この問題のために:

修正Windowsの共有メモリ割り当てコード(勉山田、マグナス)

このバグはにつながりました「 共有メモリに再接続できませんでした」というエラーメッセージが頻繁に報告されました。

SELECT version();

関連する問題