[ http://nagoya.apache.org/jira/browse/GERONIMO-347?page=history ]

David Jencks updated GERONIMO-347:
----------------------------------

    Component: transaction manager
                   (was: general)

> TransactionContext usage is confused and confusing
> --------------------------------------------------
>
>          Key: GERONIMO-347
>          URL: http://nagoya.apache.org/jira/browse/GERONIMO-347
>      Project: Apache Geronimo
>         Type: Improvement
>   Components: transaction manager
>     Versions: 1.0-M3
>     Reporter: David Jencks
>     Assignee: David Jencks

>
> Currently there is the TransactionContext with static accessors for the 
> current thread's TransactionContext and a TransactionContextManager 
> object/gbean with non-static accessors and helper methods to create the 
> various types of TC and associate them with the current thread.  Some 
> components use the TransactionContext static methods and some use the gbean 
> methods.  
> We have a problem that new threads don't automatically get a TC.  For threads 
> we create, we can add code to create the TC, but for threads created e.g. by 
> a servlet we have no direct access to do so.
> Our TC cannot safely be shared between threads.  Therefore I don't think that 
> using an InheritableThreadLocal in TC is a good solution.
> My proposal, which I will implement in the absence of other suggestions, is 
> to eliminate the static methods on TC and just use the gbean accessors.  The 
> getTransactionContext method will never return null: if there is no TC for 
> the current thread it will create a new UnspecifiedTransactionContext and 
> associate it with  the thread before returning.  I may create an additional 
> method for this, getNonNullTransactionContext, so the existing method can be 
> used where it would be an error for no TransactionContext to be associated 
> with the current thread.
> The advantage I see in using a gbean rather that static methods is that is 
> will simplify plugging in a different set of TransactionContext 
> implementations should we wish to do so.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira

Reply via email to