Statement.setQueryTimeout() with autoCommit=false
От | pavel.arnost@loutka.cz |
---|---|
Тема | Statement.setQueryTimeout() with autoCommit=false |
Дата | |
Msg-id | 5097e057-c9b9-42f0-bed0-219eab05bb7d@googlegroups.com обсуждение исходный текст |
Ответы |
Re: Statement.setQueryTimeout() with autoCommit=false
|
Список | pgsql-jdbc |
Hi, does setQueryTimeout work with autoCommit=false? When autoCommit is true, this code timeouts after 5 seconds (as expected): -- Class.forName("org.postgresql.Driver"); String url = "jdbc:postgresql://172.30.100.6/test"; Properties props = new Properties(); props.setProperty("user", "postgres"); props.setProperty("password", ""); Connection conn = DriverManager.getConnection(url, props); PreparedStatement st = conn.prepareStatement("INSERT INTO test VALUES('xxx')"); st.setQueryTimeout(5); st.execute(); -- But if I set autoCommit to false, this code timeouts after 30 seconds on read timeout: -- Class.forName("org.postgresql.Driver"); String url = "jdbc:postgresql://172.30.100.6/test"; Properties props = new Properties(); props.setProperty("user", "postgres"); props.setProperty("password", ""); Connection conn = DriverManager.getConnection(url, props); conn.setAutoCommit(false); PreparedStatement st = conn.prepareStatement("INSERT INTO test VALUES('xxx')"); st.setQueryTimeout(5); st.execute(); conn.commit(); -- I'm confused what's setQueryTimeout() method for, why it doesn't work with manual transactions? Thanks, Regards Pavel
В списке pgsql-jdbc по дате отправления: