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]

Reply via email to