db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mamta Satoor <msat...@gmail.com>
Subject Re: Question about holdability and XA
Date Wed, 15 Jun 2005 05:29:44 GMT
Just an FYI, I have made a JIRA entry for the jdk13 behavior
Derby-366 In jdk13, when a connection transitions from global transaction to 
local transaction, its default holdability of HOLD_CURSORS_OVER_COMMIT is 
not restored.

 On 6/14/05, Kathey Marsden <kmarsdenderby@sbcglobal.net> wrote: 
> 
> Mamta Satoor wrote:
> 
> > Hi Kathey,
> >
> > Just to summarize, the holdability table will look the same for
> > EmbedConnection as well as BrokeredConnection.
> >
> > Global Transaction
> > Local Transaction
> > JDK13 CLOSE_CURSORS_AT_COMMIT conn holdability (Default
> > HOLD_CURSORS_OVER_COMMIT)
> > JDK14+ CLOSE_CURSORS_AT_COMMIT conn holdability (Default
> > HOLD_CURSORS_OVER_COMMIT)
> >
> > A Connection object will have it's holdability set to default which is
> > HOLD_CURSORS_OVER_COMMIT. When the connection joins a global
> > transaction, the holdability will get switched internally to
> > CLOSE_CURSORS_AT_COMMIT. When the connection leaves the global
> > transaction and becomes part of local transaction, the holdability is
> > restored to what it was before entering the global transaction. It
> > works this way in both jdk13 and jdk14+. One thing to keep in mind is
> > that PreparedStatement get the holdability from where they are
> > prepared and not where they are executed, for instance,
> > Start Local Transaction
> > Connection holdability (default - HOLD_CURSORS_OVER_COMMIT)
> > PreparedStatement (holdability will be HOLD_CURSORS_OVER_COMMIT)
> > ResultSet from PreparedStatement will have holdability as
> > HOLD_CURSORS_OVER_COMMIT
> > Start Global Transaction
> > Connection holdability switches to CLOSE_CURSORS_AT_COMMIT
> > Another ResultSet from PreparedStatement will attempt to have the
> > preparedStatement's holdability and that will cause exception because
> > Global transactions do not support holdable cursors.
> > Exit Global Transaction and become part of Local Transaction
> > Connection holdability back to HOLD_CURSORS_OVER_COMMIT
> 
> Thanks Mamta for the summary. Good to understand the intended
> behviour while trying to get the client holdability to match the server.
> 
> >
> > I have come across one bug with jdk13 though, where the holdability is
> > not getting restored back to HOLD_CURSORS_OVER_COMMIT when the
> > connection becomes part of local transaction after leaving global
> > transaction. I will enter a JIRA entry for it and start working on it.
> 
> Of course this bug is probably why I am seeing xaSimplePostive.sql pass
> for jdk131 with client #:), but great to have that mystery solved too.
> .
> Kathey
> 
> 
>

Mime
View raw message