Statement has been closed (only in Windows)
От | Carlos Correia |
---|---|
Тема | Statement has been closed (only in Windows) |
Дата | |
Msg-id | 43E64FD8.9030704@m16e.com обсуждение исходный текст |
Ответы |
Re: Statement has been closed (only in Windows)
|
Список | pgsql-jdbc |
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, While testing a Java app (that's been working for years with PostgreSQL + Linux) in a Windows box I get this error when inserting a record whithin a transaction: org.postgresql.util.PSQLException: This statement has been closed. ~ at org.postgresql.jdbc2.AbstractJdbc2Statement.checkClosed(AbstractJdbc2Statement.java:2390) ~ at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:329) ~ at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:278) What I was doing was to keep a single connection since the beginning until the end of the session. public class DbConnection { ~ Statement statement = null; ~ public Statement getStatement() throws SQLException ~ { ~ if( statement == null ) ~ statement = con.createStatement(); ~ return statement; ~ } } As there was only one connection established with the database (fat client), this seemed OK. As the driver, when I ran the same app in Windos, was complaining that the connection had been closed, I commented out the 'if' line above... et voilá, problem solved. New method: ~ public Statement getStatement() throws SQLException ~ { statement = con.createStatement(); ~ return statement; ~ } As I don't like this solution (either trusting the garbage collector to do his job or closing every statement after have been used), what I ask is: what is the proper way of handling this kind of problem? Testing conditions: Linux: - - Debian, Ubuntu, Gentoo, Fedora, etc. - - PostgreSQL 7.4.x - - pg74.216.jdbc3.jar Windows: - - Windows 2000, XP - - PostgreSQL 8.1 - - postgresql-8.0-314.jdbc3.jar Thanks, Carlos - -- MEMÓRIA PERSISTENTE, Lda. Tel.: 219 291 591 - GSM: 967 511 762 e-mail: geral@m16e.com - URL: http://www.m16e.com AIM: m16e - ICQ: 257488263 - Jabber: m16e@amessage.de Skype.com username (VoIP): m16e.com GnuPG: wwwkeys.eu.pgp.net -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org iD8DBQFD5k/X90uzwjA1SJURAsG+AJ0RYQalem4sTxzyQd8Z/ucKsP4YLACdGyU9 LPA+ToH9kBrgxM3kE2V1Zxg= =v2Qt -----END PGP SIGNATURE-----
В списке pgsql-jdbc по дате отправления: