From: | Barry Lind <barry(at)xythos(dot)com> |
---|---|
To: | Matthias Brunner <mb(at)blumenstrasse(dot)vol(dot)at> |
Cc: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Re: Calling Connection.close() in Connection.finalize() |
Date: | 2002-08-15 17:43:03 |
Message-ID: | 3D5BE827.9080108@xythos.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Matthias,
That is the behavior I would expect. If you don't close the connection
you will see this. The reason here is the JVM doesn't run finalization
when it is exiting. So you didn't close the connection and the finalize
method is never called because you are just exiting before garbage
collection runs.
--Barry
Matthias Brunner wrote:
>On Thursday 15 August 2002 18:50, Barry Lind wrote:
>
>
>>This is implemented and has been since 7.1.
>>
>>
>>
>
>I'm sorry to be such a pain in the neck :-) Created a test class now (file
>attached).
>
>$md5sum pgjdbc2.jar
>f4ed2deaa88e16e79ccfa1c5b1f5ca22 pgjdbc2.jar
>$export CLASSPATH=pgjdbc2.jar:.
>$javac PgTest.java
>$java PgTest
>
>Message in /var/log/postgresql:
>DEBUG: connection: host=127.0.0.1 user=mb database=mb
>DEBUG: pq_recvbuf: unexpected EOF on client connection
>
>When I call Connection.close() explicitly the second message does not appear.
>
>Versions:
>postgresql 7.2,
>JDBC driver for 7.2
>Sun JDK 1.4 (build 1.4.0_01-b03)
>Linux 2.4.18
>
>
>------------------------------------------------------------------------
>
>import java.sql.Connection;
>import java.sql.DriverManager;
>
>public class PgTest {
>
>
>public static void main(String[] args) {
>
> try {
> Class.forName("org.postgresql.Driver").newInstance();
> Connection con = DriverManager.getConnection(
> "jdbc:postgresql:mb?user=mb");
>
> //con.close();
>
> }
> catch (Exception e) {
> e.printStackTrace();
> }
>}
>
>}
>
>
From | Date | Subject | |
---|---|---|---|
Next Message | Felipe Schnack | 2002-08-15 17:48:38 | datasource |
Previous Message | Matthias Brunner | 2002-08-15 17:38:50 | Re: Calling Connection.close() in Connection.finalize() |