JDBC commit() not working?
От | Robert Berger |
---|---|
Тема | JDBC commit() not working? |
Дата | |
Msg-id | 3B7B3AD1.C7C4E339@vtiscan.com обсуждение исходный текст |
Ответ на | How can I know the disk space used by a table? ("Andrea Aime" <aaime@comune.modena.it>) |
Список | pgsql-general |
I have some code that's doing connection pooling for some servlets. I turn autoCommit off and let each caller determine when to commit. Hoever, commit() does not seem to be releasing read locks, causing my periodic VACUUM task to block. In the following code, after commit() is called, ps shoes the backend state as "idle in transaction". If I turn autocommit on, the state is "idle" Why the difference? import java.sql.*; public class ctest { public static void main(String argv[]) { try { String driverName = "org.postgresql.Driver"; Class.forName(driverName).newInstance(); Connection con = DriverManager.getConnection( "jdbc:postgresql://127.0.0.1/jackson","db","zzzz"); con.setAutoCommit(false); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT COUNT(*) FROM s_image"); rs.next(); int count = rs.getInt(1); rs.close(); con.commit(); System.out.println(count); Thread.sleep(30000); } catch (Exception e) { e.printStackTrace(); } } }
В списке pgsql-general по дате отправления: