You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Mike Perham <mp...@gmail.com> on 2007/01/02 17:47:30 UTC

spring, jta and geronimo

I've got an EAR that prints this when it starts.

No JTA TransactionManager found: transaction suspension and
synchronization with existing JTA transactions not available

This application works fine in jboss.  I'm just using the standard
JtaTransactionManager in Spring 1.2.8.  According to the Spring docs:

The location of this well-defined JTA object is not specified by J2EE;
it is specific to each J2EE server, often kept in JNDI like the JTA
UserTransaction. Some well-known JNDI locations are:

    * "java:comp/UserTransaction" for Resin 2.x, Oracle OC4J (Orion),
JOnAS (JOTM), BEA WebLogic
    * "java:comp/TransactionManager" for Resin 3.x
    * "java:pm/TransactionManager" for Borland Enterprise Server and
Sun Application Server (Sun ONE 7 and later)
    * "java:/TransactionManager" for JBoss Application Server

All of these cases are autodetected by JtaTransactionManager (since
Spring 1.2), provided that the "autodetectTransactionManager" flag is
set to "true" (which it is by default). Consequently,
JtaTransactionManager will support transaction suspension
out-of-the-box on many J2EE servers.


Is the Geronimo transaction manager located elsewhere or not created
by default?  Any tips on how to get this working?

mike

Re: spring, jta and geronimo

Posted by David Jencks <da...@yahoo.com>.
On Jan 2, 2007, at 11:47 AM, Mike Perham wrote:

> I've got an EAR that prints this when it starts.
>
> No JTA TransactionManager found: transaction suspension and
> synchronization with existing JTA transactions not available
>
> This application works fine in jboss.  I'm just using the standard
> JtaTransactionManager in Spring 1.2.8.  According to the Spring docs:
>
> The location of this well-defined JTA object is not specified by J2EE;
> it is specific to each J2EE server, often kept in JNDI like the JTA
> UserTransaction. Some well-known JNDI locations are:
>
>    * "java:comp/UserTransaction" for Resin 2.x, Oracle OC4J (Orion),
> JOnAS (JOTM), BEA WebLogic
>    * "java:comp/TransactionManager" for Resin 3.x
>    * "java:pm/TransactionManager" for Borland Enterprise Server and
> Sun Application Server (Sun ONE 7 and later)
>    * "java:/TransactionManager" for JBoss Application Server
>
> All of these cases are autodetected by JtaTransactionManager (since
> Spring 1.2), provided that the "autodetectTransactionManager" flag is
> set to "true" (which it is by default). Consequently,
> JtaTransactionManager will support transaction suspension
> out-of-the-box on many J2EE servers.
>
>
> Is the Geronimo transaction manager located elsewhere or not created
> by default?  Any tips on how to get this working?

Before 1.2 there was no global jndi in which to bind anything, so  
instead there's something I cooked up to find the tm.  I'm not sure  
if it works and don't remember how to use it :-(  I think there were  
other problems with it as well.

As of 1.2 (I think) and 2.0 (definitely) there is global jndi and the  
tm should be bound to java:TransactionManager.  The binding gbean is  
in the transaction or transaction-jta11 configuration:

     <gbean name="TransactionManagerBinding"  
class="org.apache.geronimo.gjndi.binding.GBeanBinding">
         <attribute name="name">TransactionManager</attribute>
         <attribute name="abstractNameQuery">? 
name=TransactionManager#</attribute>
         <reference name="Context">
             <name>JavaContext</name>
         </reference>
     </gbean>

The JavaContext gbean referred to is in rmi-naming.

hope this helps and you can use 1.2-M1 :-)

thanks
david jencks

>
> mike