- - PR -
PostgreSQLとの接続が止まってしまいます
1
| 投稿者 | 投稿内容 | ||||
|---|---|---|---|---|---|
|
投稿日時: 2006-11-13 22:19
プログラムも何もかも初心者のものです。
PostgreSQLを使ってJAVAプログラムでシステムを作っていますが、プログラムをある程度使っていると、PostgreSQLとの接続ができなくなってしまいます。 プログラムではトランザクションを使っているので、begin、commitやconnectionの切り忘れかと思って見ているのですが、ちゃんとできているように思われます。 エラーがでるタイミングが決まっていないのでプログラムのログを見てもどこを直せばいいのかわからず困っています。 PostgreSQLでログをとると下記のようになっています。 2006-11-13 20:46:54 LOG: server process (PID 5160) was terminated by signal 66 2006-11-13 20:46:54 LOG: terminating any other active server processes 2006-11-13 20:46:55 WARNING: terminating connection because of crash of another server process シグナル66の意味を検索しても何かわからないので困っています。 エラーの原因がわかる方がおられましたらよろしくお願いします。 | ||||
|
投稿日時: 2006-11-13 22:35
PostgreSQL 8.0 JAVA 1.5.0 Tomcat 5.5.4 OSはWindowsXPを使っています。
| ||||
|
投稿日時: 2006-11-14 09:39
Javaの方も何かエラーを出してはいない?
解決になるかどうかは分からないけど、以下のMLで同じような悩みを抱えている人がいた。 http://archives.postgresql.org/pgsql-jdbc/2005-09/msg00050.php | ||||
|
投稿日時: 2006-11-16 00:54
javaの方のエラーは以下のようなものです
java.sql.SQLException: Cannot get connection for URL jdbc:postgresql://localhost:5432/***** : The connection attempt failed. at org.enhydra.jdbc.standard.StandardDataSource.getConnection(StandardDataSource.java:216) at org.enhydra.jdbc.standard.StandardPooledConnection.<init>(StandardPooledConnection.java:65) at org.enhydra.jdbc.standard.StandardXAConnection.<init>(StandardXAConnection.java:81) at org.enhydra.jdbc.standard.StandardXADataSource.getXAConnection(StandardXADataSource.java:109) at org.enhydra.jdbc.pool.StandardXAPoolDataSource.create(StandardXAPoolDataSource.java:155) at org.enhydra.jdbc.pool.GenericPool.getFromPool(GenericPool.java:247) at org.enhydra.jdbc.pool.GenericPool.checkOut(GenericPool.java:351) at org.enhydra.jdbc.pool.StandardPoolDataSource.getConnection(StandardPoolDataSource.java:194) at org.enhydra.jdbc.pool.StandardPoolDataSource.getConnection(StandardPoolDataSource.java:164) ・・・・・・・ ただ単にデータベースに接続できないエラーのように思うのですが・・・・ postgreSQLのログを見るとbegin commitが入る場合と入らない場合があるのでそれが原因かと思ってプログラムを見直しているのですが今のところ抜けているところがありません 実際ちゃんとcommitされているので・・・・・ トランザクションにはJOTMを使っていて、その中で LOCK TABLE を使っているのですがそれが原因でしょうか? | ||||
|
投稿日時: 2006-11-16 07:46
commit はされているけど、close してないので、コネクションが作成し続けられ、 最後は、最大数にまで達した、ということではありませんか? PostgreSQLでのsession数確認方法 こちらのスレッドにてコメントされている方法で確認してみてはいかがでしょうか。 原因を特定してからコードを追った方が、効率はよいとおもいますよ。 | ||||
1
