Hello,
maybe I am totaly wrong, but contains Spring DM JTA support?
Or is there recommended/approved JTA manager for Spring DM?
Thanks.
Hello,
maybe I am totaly wrong, but contains Spring DM JTA support?
Or is there recommended/approved JTA manager for Spring DM?
Thanks.
If you're referring to a transaction manager with container-managed global transactions, then no, dm server doesn't have it. There is a JOTM bundle which works with a few tweaks (see the SpringSource/BRITS Jira for details), but that is a pretty outdated solution anyway. Atomikos so far looks like it just might be what's needed but there is some work required to make it functional. There are some details here: http://fogbugz.atomikos.com/default....munity.6.317.7
OK, thanks for reply.
We use JOTM now. Atomikos we try for some time, but it is so buggy and no J2EE friendly.
Hi,
@cesnek: I work for Atomikos... Since the time this thread was opened we (at Atomikos) had a lot of releases and fixes - but if there are still show-stopping bugs then we would like to hear about them.
@canobi: we think we have addressed the issues with DM server in the meantime, although 'full' OSGi support is still in our todos. However, the issue with class loading has been addressed and is included in our 3.5 release.
Cheers
Hi,
FYI: we have recently released TransactionsEssentials 3.6, compatible with OSGi.
I hope this fixes any remaining issues re DM server integration ;-)
Best
Guy
Hi,
I download AtomikosTransactionsEssentials-3.6.3 and try to use JTA in Equinox 3.5 and Spring Dynamic Module 1.2.
So I copy atomikos-util.jar, transactions.jar, transactions-api.jar, transactions-jta.jar and transactions-jdbc.jar to my OSGi Target directory and reload the OSGi Target.
When I startup equinox, it display the following error message:
What is the problem?Code:java.lang.NoClassDefFoundError: javax/transaction/RollbackException
Here is my spring bean config xml:
And the MANIFEST.MF:Code:<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close"> <property name="forceShutdown"> <value>true</value> </property> </bean> <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp"> <property name="transactionTimeout" value="300000" /> </bean> <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager"> <property name="transactionManager"> <ref bean="atomikosTransactionManager" /> </property> <property name="userTransaction"> <ref bean="atomikosUserTransaction" /> </property> </bean>
Code:Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: com.okooo.osgi.mysql.transcation.jta Bundle-SymbolicName: com.okooo.osgi.mysql.transcation.jta Bundle-Version: 1.0.0 Bundle-Vendor: OKOOO Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Require-Bundle: org.springframework.beans, org.springframework.osgi.log4j.osgi;bundle-version="1.2.15", org.springframework.core;bundle-version="2.5.6", org.springframework.aop;bundle-version="2.5.6", com.springsource.org.aopalliance;bundle-version="1.0.0", com.springsource.net.sf.cglib;bundle-version="2.1.3", org.springframework.transaction;bundle-version="2.5.6", com.atomikos.transactions;bundle-version="3.6.3", com.atomikos.transactions-api;bundle-version="3.6.3", com.atomikos.transactions-jdbc;bundle-version="3.6.3", com.atomikos.transactions-jta;bundle-version="3.6.3", com.atomikos.util;bundle-version="3.6.3" Bundle-ClassPath: .
All the projects I worked on had more than one resource, at least JMS + DB. If by default transaction demarcation is not fully respected, I don't think Spring DM is enterprise grade.
Not using JTA is likely a tiny imperceptible optimization. To be compared with losing important correctness. In all transactions that involve no more than one resource, it is likely a good transaction manager could optimize/skip steps.
I think the debate is similar to removing couple of needed synchronized keywords, for performance reason, in an enterprise Java application.
This is a fairly old thread, much has changed in the meantime. As can be seen above, Atomikos now works with dm server without too much hassle (it's been working like that for more than a year now). Also, the OSGi enterprise specification was recently released and dm server, having become a part of the Eclipse Gemini project, will hopefully include all the OSGi enterprise-scope developments in future versions. That way it should provide all enterprise functionality in one package, however that doesn't mean it's not enterprise "enabled" now - it is, you just have to integrate all the components you need by yourself.