Atomikos Forum |
|
Hi there,
i am looking into how to set up transactions for a loosely coupled web-based administration system we're building, and am wondering about whether atomikos can be used in our scenario: SETUP: We have 2(potentially more in the future) data sources, and a generic "job" class that is to execute tasks against these datasources. The tasks are configured in a database (including which datasource to use) and read up in run-time. The task can either be a set of sql commands against datasource1, or datasource2. We have traditionally used spring's built-in functionality for transaction management, but that one can only be set up against one specific data source. What i'd like is to be able to configure a transactionmanager against both(all) data sources, use @transactional annotation on the job class method and the transaction manager would manage the transaction regardless of which one of the 2 datasources that is used inside the method. Is this feasible? Any input would be appreciated. (I don't really need XA-support, i just want to make sure that all sql within each datasource is handled within a transaction)
hi mathias,
I think, using atomikos here is a little bit oversized. I would prefer using spring declarative transaction management by defining AOP proxies with different transaction manager instances. <tx:advice id="txAdvice" transaction-manager="txManager"> <!-- the transactional semantics... --> <tx:attributes> <!-- all methods starting with 'get' are read-only --> <tx:method name="get*" read-only="true"/> <!-- other methods use the default transaction settings (see below) --> <tx:method name="*"/> </tx:attributes> </tx:advice> ...and once again... <tx:advice id="..." ...> see spring reference: http://static.springframework.org/spring/docs/2.5.x/reference/transaction.html#transaction-declarative-annotations That should work - ok you have to give up the sexy @Transactional annotation :-/ Cheers, Martin |