Uploaded image for project: 'Application Server 7'
  1. Application Server 7
  2. AS7-1358

UserTransaction not available to non-EE threads

    XMLWordPrintable

Details

    • Feature Request
    • Resolution: Done
    • Major
    • 7.0.1.Final
    • 7.0.0.Final
    • Transactions
    • None

    Description

      JBoss Seam offers Asynchronous behaviour for non-EJB environments using a Quartz dispatcher. Asynchronous behaviour may also make use of Seam's @Transactional marker to demarcate tx boundaries.

      Since testing one of our applications in AS7 I noticed Seam "could not discover transaction status" error messages reported as our application ran async sections of code.

      Examining the Seam code, I could see that Seam would make two attempts to access a JNDI UserTransaction resource:

      1 - context.lookup("java:comp/UserTransaction");

      If an NameNotFoundException is thrown, then attempt:

      2 - context.lookup("UserTransaction");

      Under AS6 and below, the latter attempt would succeed. Under AS7 attempts are currently failing.

      While looking into this issue I came across the following developer discussion which suggests that it might be possible to add a "java:/jboss/UserTransaction" resource:

      http://lists.jboss.org/pipermail/jboss-as7-dev/2011-June/002298.html

      Further discussion on my AS7 user forum thread lead to the suggestion that I myself might add this behaviour.

      I have followed the implementation hints and light testing has been successful (with appropriate mods to Seam to use the new resource name). I aim to perform some more thorough testing on this shortly and submit a patch against this issue.

      Attachments

        Activity

          People

            rhn-engineering-jhallida Jonathan Halliday
            lowecg2004_jira Chris Lowe (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: