[ 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