0

Postgres9.1.5を使用しています。JDBCは最初のインスタンスでは正常に機能しますが、再試行すると接続を拒否し始めます。たとえば、JDBCを使用してWebアプリケーションにログインしましたが、正常に機能します。しかし、その後、接続を使用して他のデータをフェッチしようとすると、例外が発生します。接続が拒否されました。前回正常に機能したログインJDBCでも例外が発生するため、コードに問題はないと確信しています。接続が拒否されました。

postgres Windowsサービスを再起動すると、再び機能します。次に、JDBCにログインすると、一部のデータがフェッチされ、接続が拒否されます。再インストールを試みました。私のラップトップに何か問題がありますか?

また、PGAdminにも同じ問題があります。いくつかのクエリを実行してから、エラーメッセージの表示を開始します:Postgresサービスが停止しました。何か私にできることはありますか?ご意見をお聞かせください。また、追加情報が必要な場合はお知らせください。

4

2 に答える 2

1

この動作には、基本的に2つの理由が考えられます。

1)postgresqlは127.0.0.1アドレスにのみバインドされており、他のコンピューターから彼に問い合わせたいと考えています。この場合、postgresql.confファイルをチェックし、行の先頭をチェックする必要がありますlisten_addresses。'*'が必要です。または、ファイアウォールを使用して、デフォルトのPostgresqlポートであるポート5432へのアクセスを保護することもできます。

2)ファイルpg_hba.confに不正な権限を設定しました。このファイルを確認してください。明らかにコメント付きの例がいくつかあります。

于 2012-10-16T10:55:27.467 に答える
0

推測するのは難しいですが、正しく起動しているように見えますが、後で問題が発生します。このような場合の最初の停止は、常にログファイルである必要があります。簡単なチェックはmax_connections、構成ファイル(ここのドキュメント)で確認することです。それは途方もなく低い値に事前設定されている可能性があります。pgAdminIIIでサーバーノードをクリックすると、[統計]タブにも開いているすべての接続が表示されます。使用可能なすべての接続を消費するプロセスに問題がある可能性があります。

何が起こるかを理解する別の方法は、公式ドキュメントで説明されているように、postgresサーバーをインタラクティブに起動することです(つまり、起動したウィンドウにすべてのメッセージを出力します) 。

また、サーバーがLinuxで実行されている場合は、psが役立ちます。postgres接続は個々のプロセスによって管理されます。つまり、psに個別に表示されます。

ps ax | grep postgres:
....
20528 ?        Ss     0:00 postgres: username dbname clienraddress(48679) idle
于 2012-10-16T10:20:25.050 に答える