| From: | pavel(dot)arnost(at)loutka(dot)cz |
|---|---|
| To: | pgsql-jdbc(at)postgresql(dot)org |
| Subject: | Statement.setQueryTimeout() with autoCommit=false |
| Date: | 2012-12-06 17:04:41 |
| Message-ID: | 5097e057-c9b9-42f0-bed0-219eab05bb7d@googlegroups.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | 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
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Dave Cramer | 2012-12-06 17:54:48 | Re: Statement.setQueryTimeout() with autoCommit=false |
| Previous Message | dmp | 2012-11-26 19:21:20 | Re: Problems with BIT datatype and preparedStatment |