Hello, I wonder if Talend esb runtime supports XA transaction. For example, I need to receive a jms message then do some calculation to send a message out to jms queue and at the same time update 2 different databases (one Oracle, one SQLServer). I want to put these operations into the same transaction -- all fail or all succeed. Is this possible with Talend esb? Otherwise, how to achieve this? Deploying to JEE container? Thanks, Xuetao
Hello, about the XA transactions and the link you've sent: Talend ESB Runtime is an Apache Karaf + there are plenty additional features (jobs, monitoring, configuration, ..) tuned to play together. So - you are free to use it as an ordinary Apache Karaf / Servicemix container. That means if you develop and deploy your own OSGi bundles, camel routes, services, you are good to go and you can as well leverage XA capabilities (with JPA, JTA, .. there are already features prepared to be installed). Until you don't screw up the library versions you are pretty safe. We use the Talend ESB Runtime as a Karaf container, because - it works and there's an option to support it by Talend - a commercial support we cannot (or are are not willing to) do. However if we are talking about pure Talend features (developing in TOS), here you need to distinguish: - Talend DI jobs - IMHO they were intended primary for data integration (even with capability to be exposed as a service), and we use the JMS to reliably distribute updates in a distributed environment. However - having the XA capability there could be useful for many people, like https://jira.talendforge.org/browse/TESB-10795 - Mediation routes - they are in reality the Camel routes. However the graphical design simplifies the prototyping and maintenance, one cannot (or - it is often difficult) have all the possible features a developer has with pure blueprint configuration. - In the commercial version (I hope I am not wrong) you can develop Java modules in the TOS too, so you could can have a single IDE for Talend Jobs, Mediation Routes and your own custom OSGi bundles. Today we use another IDE to create our own feature archives (KAR files) and bundle exported Talend Jobs along. As a conclusion - Talend ESB supports XA transactions in the runtime, however it is difficult to enforce them from the TOS (dev. studio) for DI jobs. Carpe diem Gabriel
Hi Gabriel, That was a great response on XA, thanks for contributing that. Web services developed in the Integration perspective fit very well in straightforward CRUD operations and cases where there is no mediation required and of course a strongly typed schema. I personally prefer Mediation routes because I prefer Camel, but in many cases like I just mentioned a DI service is the simpler option because you don't have to call cTalendJob to use the RDBMS components, etc. You mentioned Java development within Talend Studio and I want to offer my view on that. I have a background in Java development as well, and while a lot of the Eclipse Java facilities are available in Studio, I would not use it as a Java IDE. The underlying project structure and plugin configuration don't really allow a clean Java IDE. I personally run a separate Eclipse with m2eclipse and maybe 1 or 2 other plugins installed for Java. Thanks again Ben
As soon as it is related to JMS subsystem, I assume it is related only to ESB product, and as mentioned by Thomas, specifically to JMS-JMS and JMS-RDBMS only scenarios in the moment. What exactly do you need?