Hi,
To implement the transaction policy, one of the key aspects is to enlist
(and delist) the transactional resources when they are accessed in the
context of a transaction.
The draft SCA transaction policy spec claims that it's out of scope:
"The means by which a transactional resource manager (RM) is accessed. These
include, but are not restricted to:
* abstracting an RM as an sca:component
* accessing an RM directly in a language-specific and RM-specific
fashion
* abstracting an RM as an sca:binding"
Basically, there are two approaches:
1) Make the runtime aware of the transactional resources and perform
automatic enlisting/delisting.
2) Expose transaction APIs (such as JTA) to the component developers and
have them do the enlisting/delisting.
I think 1) is the way to go because 2) exposes the technology-APIs to
business component developers and it's very complex to handle. So now the
question is how we achieve 1).
In a JEE runtime, the resources are usually administrated objects (such as
DataSource, JMSConnectionFactory and other JCA resources) and the
association of transactional resources with transactions are handled by the
application server. The JCA spec also defines a contract on how the resource
adapter works with the transaction manager.
Other frameworks such as Spring have AOP-style transactions.
(http://static.springframework.org/spring/docs/2.0.x/reference/transaction.html).
I'm starting to look into the possibility of abstracting RMs as an
implementation type.
Please throw out your ideas ...
Thanks,
Raymond
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]