From: | Dave Cramer <pg(at)fastcrypt(dot)com> |
---|---|
To: | David Johnston <polobo(at)yahoo(dot)com> |
Cc: | dmp <danap(at)ttc-cmc(dot)net>, List <pgsql-jdbc(at)postgresql(dot)org>, "pavel(dot)arnost" <pavel(dot)arnost(at)loutka(dot)cz> |
Subject: | Re: Statement.setQueryTimeout() with autoCommit=false |
Date: | 2012-12-06 20:18:48 |
Message-ID: | CADK3HH+iU09LJRauGunft2YbZ_mbJLyJAzqEfQF2GPuJY3YNWA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Well my point was that that insert statement shouldn't last long enough to
time out ?
Dave
Dave Cramer
dave.cramer(at)credativ(dot)ca
http://www.credativ.ca
On Thu, Dec 6, 2012 at 1:36 PM, David Johnston <polobo(at)yahoo(dot)com> wrote:
> > -----Original Message-----
> > From: pgsql-jdbc-owner(at)postgresql(dot)org [mailto:pgsql-jdbc-
> > owner(at)postgresql(dot)org] On Behalf Of dmp
> > Sent: Thursday, December 06, 2012 1:15 PM
> > To: pgsql-jdbc(at)postgresql(dot)org
> > Cc: pavel(dot)arnost(at)loutka(dot)cz
> > Subject: Re: [JDBC] Statement.setQueryTimeout() with autoCommit=false
> >
> > Exactly.
> >
> > According to the Java API:
> >
> > void setAutoCommit(boolean autoCommit) throws SQLException
> >
> > Sets this connection's auto-commit mode to the given state. If a
> > connection is in auto-commit mode, then all its SQL statements will be
> > executed and committed as individual transactions. Otherwise, its SQL
> > statements are grouped into transactions that are terminated by a call to
> > either the method commit or the method rollback. By default, new
> > connections are in auto-commit mode.
> >
> > By setting setAutoCommit(false) you are deciding to tell the database
> your
> > code will determine when to commit the transaction. Thereby I would say
> > overiding setQueryTimeout().
> >
> > danap.
>
> Even within an manually administered transaction the setting of
> "setQueryTimeout()" will (should?) act on the individual statements that
> make up the transaction. If any individual statement within the
> transaction
> exceeds the limit that statement will fail and thus put the transaction
> into
> a "failed" state where a rollback (possibly to savepoint) is required. The
> transaction itself does not constitute a statement and as such it can run
> indefinitely long regardless of the presence of a statement timeout.
>
> David J.
>
> >
> > Dave Cramer wrote:
> > > Why would the query timeout at all ?
> > >
> > > The query timeout is for long running queries. If the query takes
> > > longer than n seconds it will timeout.
> > >
> > > Dave
> > >
> > > Dave Cramer
> > >
> > > dave.cramer(at)credativ(dot)ca
> > > http://www.credativ.ca
> > >
> > >
> > >
> > > On Thu, Dec 6, 2012 at 12:04 PM, <pavel(dot)arnost(at)loutka(dot)cz
> > > <mailto:pavel(dot)arnost(at)loutka(dot)cz>> wrote:
> > >
> > > Hi,
> > >
> > > does setQueryTimeout work with autoCommit=false? When autoCommit
> > is
> > > true, this code timeouts after 5 seconds (as expected):
> > >
> > > ~
> > > ~
> > > ~
> > > --
> > >
> > > But if I set autoCommit to false, this code timeouts after 30
> > > seconds on read timeout:
> > >
> > > --
> > > ~
> > > ~
> > > ~
> > > --
> > >
> > > I'm confused what's setQueryTimeout() method for, why it doesn't
> > > work with manual transactions?
> >
> >
> > --
> > Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org) To make
> changes
> > to your subscription:
> > http://www.postgresql.org/mailpref/pgsql-jdbc
>
>
>
> --
> Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-jdbc
>
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Arnošt | 2012-12-06 20:25:33 | Re: Statement.setQueryTimeout() with autoCommit=false |
Previous Message | David Johnston | 2012-12-06 18:36:53 | Re: Statement.setQueryTimeout() with autoCommit=false |