Uploaded image for project: 'JBoss Transaction Manager'
  1. JBoss Transaction Manager
  2. JBTM-2331

TransactionalDriver may leave a JDBC Connection associated after transaction termination

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • 5.1.0
    • 5.0.4
    • JTA
    • None
    • Hide

      1) Start a transaction;
      2) Obtain a connection via the TransactionalDriver
      3) End transaction
      4) start another transaction
      5) call connection.isClosed()

      This produces the exception reported in the description because transactional driver thinks the connection from the first transaction is still associated.

      Show
      1) Start a transaction; 2) Obtain a connection via the TransactionalDriver 3) End transaction 4) start another transaction 5) call connection.isClosed() This produces the exception reported in the description because transactional driver thinks the connection from the first transaction is still associated.

    Description

      1) Start a transaction;
      2) Obtain a connection via the TransactionalDriver
      3) End transaction
      4) start another transaction
      5) Call connection.isClosed()

      this will produce the following exception because the transactional driver thinks the connection is still associated:

      java.lang.RuntimeException: java.sql.SQLException: ARJUNA017003: Checking transaction and found that this connection is already associated with a different transaction! Obtain a new connection for this transaction.
      	at ceylon.modules.bootstrap.CeylonRunTool.run(CeylonRunTool.java:228)
      	at com.redhat.ceylon.common.tools.CeylonTool.run(CeylonTool.java:368)
      	at com.redhat.ceylon.common.tools.CeylonTool.execute(CeylonTool.java:305)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at com.redhat.ceylon.launcher.Launcher.runInJava7Checked(Launcher.java:113)
      	at com.redhat.ceylon.launcher.Launcher.run(Launcher.java:40)
      	at com.redhat.ceylon.launcher.Launcher.run(Launcher.java:33)
      	at com.redhat.ceylon.launcher.Launcher.main(Launcher.java:26)
      Caused by: java.sql.SQLException: ARJUNA017003: Checking transaction and found that this connection is already associated with a different transaction! Obtain a new connection for this transaction.
      	at com.arjuna.ats.internal.jdbc.ConnectionImple.checkTransaction(ConnectionImple.java:1078)
      	at com.arjuna.ats.internal.jdbc.ConnectionImple.isClosed(ConnectionImple.java:417)
      	at ceylon.dbc.ConnectionStatus.connection(ConnectionStatus.ceylon:22)
      	at ceylon.dbc.Sql.prepareStatement$priv$(Sql.ceylon:89)
      	at ceylon.dbc.Sql.access$100(Sql.ceylon:701)
      	at ceylon.dbc.Sql$Update.execute$canonical$(Sql.ceylon:346)
      	at ceylon.dbc.Sql$Update.execute(Sql.ceylon:343)
      	at example.ceylon.transaction.tm.runTx_.runTx(transaction.ceylon:199)
      	at example.ceylon.transaction.tm.run_.run(transaction.ceylon:225)
      	at example.ceylon.transaction.tm.run_.main(transaction.ceylon)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at ceylon.modules.api.runtime.SecurityActions.invokeRunInternal(SecurityActions.java:58)
      	at ceylon.modules.api.runtime.SecurityActions.invokeRun(SecurityActions.java:48)
      	at ceylon.modules.api.runtime.AbstractRuntime.invokeRun(AbstractRuntime.java:101)
      	at ceylon.modules.api.runtime.AbstractRuntime.execute(AbstractRuntime.java:167)
      	at ceylon.modules.api.runtime.AbstractRuntime.execute(AbstractRuntime.java:151)
      	at ceylon.modules.Main.execute(Main.java:69)
      	at ceylon.modules.Main.main(Main.java:42)
      	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      	at java.lang.reflect.Method.invoke(Method.java:606)
      	at org.jboss.modules.Module.run(Module.java:312)
      	at org.jboss.modules.Main.main(Main.java:460)
      	at ceylon.modules.bootstrap.CeylonRunTool.run(CeylonRunTool.java:208)
      	... 10 more
      

      Attachments

        Activity

          People

            rhn-engineering-mmusgrov Michael Musgrove
            rhn-engineering-mmusgrov Michael Musgrove
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: