[jboss-jira] [JBoss JIRA] Commented: (JBAS-5678) closed jdbc connection before transaction rollback is called

Adrian Brock (JIRA) jira-events at lists.jboss.org
Wed Jun 25 12:32:58 EDT 2008


    [ http://jira.jboss.com/jira/browse/JBAS-5678?page=comments#action_12418923 ] 
            
Adrian Brock commented on JBAS-5678:
------------------------------------

- We won't wait until JavaEE6 (JDK4) if JDBC4 says the behaviour was never defined. 
+ We won't wait until JavaEE6 (JDBC4) if JDBC4 says the behaviour was never defined. 

JDBC4 is part of JDK6 and the future (unfinished) JavaEE6

> closed jdbc connection before transaction rollback is called
> ------------------------------------------------------------
>
>                 Key: JBAS-5678
>                 URL: http://jira.jboss.com/jira/browse/JBAS-5678
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: JCA service
>    Affects Versions: JBossAS-4.2.1.GA, JBossAS-4.2.2.GA
>            Reporter: hezimmer
>         Assigned To: Adrian Brock
>             Fix For: JBossAS-4.2.3.GA, JBossAS-5.0.0.CR1
>
>
> Database connection is closed before the transaction handler is able to initiate an rollback on this connection.
> Please take a look at forum entry: http://www.jboss.com/index.html?module=bb&op=viewtopic&t=137613
> Inside WrappedPreparedStatement method setDouble the Exception from underlying jdbc-driver is thrown. In case of this example 
> with Double.NaN as parameter value, Oracle causes an IllegalArgumentException instead of an SQLException. 
> Because of that BaseWrapperManagedConnection method connectionError is called: 
> Code: 
> void connectionError(Throwable t)
>    {
>       if (t instanceof SQLException == false || mcf.isExceptionFatal((SQLException) t))
>          broadcastConnectionError(t);
>    }	 
> This Throwable isn't an instance of SQLException so it seems to be an 
> connection error and broadcastConnectionError is called which causes 
> unregisterConnections and so the connection on jdbc level is closed 
> without rollback. Because of that the insert1 statement is commited 
> because oracle jdbc commits on close. So the transaction handling is not correct.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list