You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Marc Prud'hommeaux (JIRA)" <ji...@apache.org> on 2007/04/22 23:25:15 UTC

[jira] Updated: (OPENJPA-61) Missing usage of TransactionSynchronizationRegistry

     [ https://issues.apache.org/jira/browse/OPENJPA-61?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Marc Prud'hommeaux updated OPENJPA-61:
--------------------------------------

    Attachment: OPENJPA-61.patch

The attached patch might work. It contains a new RegistryManagedRuntime class that just uses a TransactionManager facade around a TransactionSynchronizationRegistry. This will allow us to use the standard TransactionSynchronizationRegistry interface without breaking the ManagedRuntime contracts. The only shortcoming is that direct control over the Transaction will fail (since TransactionSynchronizationRegistry doesn't provide direct access to the current Transaction).

Note also that this patch will require us to update our JTA dependency from geronimo-jta_1.0.1B_spec to geronimo-jta_1.1_spec. I don't envision that being a problem, since it should be backwards-compatible.

I will need someone who has access to a container that supports the TransactionSynchronizationRegistry interface to test this out before we can commit it.

> Missing usage of TransactionSynchronizationRegistry
> ---------------------------------------------------
>
>                 Key: OPENJPA-61
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-61
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jdbc
>            Reporter: Kevin Sutter
>         Assigned To: Kevin Sutter
>             Fix For: 1.1.0
>
>         Attachments: OPENJPA-61.patch
>
>
> A discussion on the dev mailing list indicates that OpenJPA currently does not utilize the TransactionSynchronizationRegistry.  Although OpenJPA does provide other means of finding and accessing the various TransactionManagers, we should update OpenJPA to use the standard interfaces.  Following are the two notes on this subject...
> ========================================================================================		
> o  David Jencks 	<da...@yahoo.com> to open-jpa-dev 	 More options	  Sep 27 (19 hours ago)
> I'm trying to get openjpa running in geronimo and wonder how openjpa
> locates the TransactionSynchronizationRegistry.  Grep'ing for
> TransactionSynchronizationRegistry I don't see it used anywhere in
> the code base.  What am I missing?
> thanks
> david jencks
> ========================================================================================
> o  Marc Prud'hommeaux 	to open-jpa-dev	 More options	  Sep 27 (19 hours ago)
> David-
> We don't use TransactionSynchronizationRegistry (not yet, at least).
> Instead, we manually locate the TransactionManager via appserver-
> specific heuristics defined in openjpa-kernel/src/main/java/org/
> apache/openjpa/ee/AutomaticManagedRuntime.java
> If the Geronimo TransactionManager is accessible from JNDI or some
> method invocation, you can just add it into AutomaticManagedRuntime
> as a default (you can test it out by specifying the
> "openjpa.ManagedRuntime" property to "jndi
> (TransactionManagerName=java:/GeronimoJNDINameForTransactionManager)".
> We may add support for integration via
> TransactionSynchronizationRegistry in the future, but the fact that
> it doesn't provide support for accessing the current Transaction
> would mean that we would need to rework some OpenJPA internals.
> ========================================================================================

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Re: [jira] Updated: (OPENJPA-61) Missing usage of TransactionSynchronizationRegistry

Posted by Craig L Russell <Cr...@Sun.COM>.
Hi Marc,

I guess you need someone to run a test suite that is container-based.  
Aside from the TCK for JPA, running inside the container, are there  
other test suites that would demonstrate this functionality?

Craig

On Apr 22, 2007, at 2:25 PM, Marc Prud'hommeaux (JIRA) wrote:

>
>      [ https://issues.apache.org/jira/browse/OPENJPA-61? 
> page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
>
> Marc Prud'hommeaux updated OPENJPA-61:
> --------------------------------------
>
>     Attachment: OPENJPA-61.patch
>
> The attached patch might work. It contains a new  
> RegistryManagedRuntime class that just uses a TransactionManager  
> facade around a TransactionSynchronizationRegistry. This will allow  
> us to use the standard TransactionSynchronizationRegistry interface  
> without breaking the ManagedRuntime contracts. The only shortcoming  
> is that direct control over the Transaction will fail (since  
> TransactionSynchronizationRegistry doesn't provide direct access to  
> the current Transaction).
>
> Note also that this patch will require us to update our JTA  
> dependency from geronimo-jta_1.0.1B_spec to geronimo-jta_1.1_spec.  
> I don't envision that being a problem, since it should be backwards- 
> compatible.
>
> I will need someone who has access to a container that supports the  
> TransactionSynchronizationRegistry interface to test this out  
> before we can commit it.
>
>> Missing usage of TransactionSynchronizationRegistry
>> ---------------------------------------------------
>>
>>                 Key: OPENJPA-61
>>                 URL: https://issues.apache.org/jira/browse/OPENJPA-61
>>             Project: OpenJPA
>>          Issue Type: Bug
>>          Components: jdbc
>>            Reporter: Kevin Sutter
>>         Assigned To: Kevin Sutter
>>             Fix For: 1.1.0
>>
>>         Attachments: OPENJPA-61.patch
>>
>>
>> A discussion on the dev mailing list indicates that OpenJPA  
>> currently does not utilize the  
>> TransactionSynchronizationRegistry.  Although OpenJPA does provide  
>> other means of finding and accessing the various  
>> TransactionManagers, we should update OpenJPA to use the standard  
>> interfaces.  Following are the two notes on this subject...
>> ===================================================================== 
>> ===================		
>> o  David Jencks 	<da...@yahoo.com> to open-jpa-dev 	 More  
>> options	  Sep 27 (19 hours ago)
>> I'm trying to get openjpa running in geronimo and wonder how openjpa
>> locates the TransactionSynchronizationRegistry.  Grep'ing for
>> TransactionSynchronizationRegistry I don't see it used anywhere in
>> the code base.  What am I missing?
>> thanks
>> david jencks
>> ===================================================================== 
>> ===================
>> o  Marc Prud'hommeaux 	to open-jpa-dev	 More options	  Sep 27 (19  
>> hours ago)
>> David-
>> We don't use TransactionSynchronizationRegistry (not yet, at least).
>> Instead, we manually locate the TransactionManager via appserver-
>> specific heuristics defined in openjpa-kernel/src/main/java/org/
>> apache/openjpa/ee/AutomaticManagedRuntime.java
>> If the Geronimo TransactionManager is accessible from JNDI or some
>> method invocation, you can just add it into AutomaticManagedRuntime
>> as a default (you can test it out by specifying the
>> "openjpa.ManagedRuntime" property to "jndi
>> (TransactionManagerName=java:/ 
>> GeronimoJNDINameForTransactionManager)".
>> We may add support for integration via
>> TransactionSynchronizationRegistry in the future, but the fact that
>> it doesn't provide support for accessing the current Transaction
>> would mean that we would need to rework some OpenJPA internals.
>> ===================================================================== 
>> ===================
>
> -- 
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
>

Craig Russell
Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
408 276-5638 mailto:Craig.Russell@sun.com
P.S. A good JDO? O, Gasp!