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

Connection leak if the DBMS is not mapped into the ModifierFactory or if the DBMS does not support multiple connections

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Blocker Blocker
    • 4.8.0
    • 4.5.0, 4.6.0
    • JTA
    • None

      When a close() is issued on a ConnectionImple() before transaction termination (and this can happen because of Spring JTA infrastructure calling org.springframework.jdbc.datasource.DataSourceUtils.ConnectionSynchronization.beforeCompletion()) and either:

      • the ModifierFactory has no information about the DBMS in use (PostgreSQL, for instance...)
        or
      • the modifier for the DBMS says that it does not support multiple connections in a single transaction

      then, the synchronization that should close the connection after transaction completion is not registered and the connection is lost!

      This is at lines 349-359 of com.arjuna.ats.internal.jdbc.ConnectionImple in JBossTS 4.5.0 GA codebase.

      IMHO, the synchronization should always be registered unless we are sure that multiple connections in a single transaction are not supported. I have no idea of what should happen in the latter case...

            nmcl2001 Mark Little
            mauromol_jira Mauro Molinari (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: