Let's suppose I have an application developed using Oracle as database and other using Mainframe(Cobol, CICS, DB2), and I want to use an ESB to connect these two applications. If I have a transaction which starts at application 1 and goes till application 2, the ESB will control this transaction?
Since Tijs has problems logging in, I'll post his answer to this question:
It's important to remember that when you want to use transactions with an ESB the ESB handles the transaction management. This means that you can't start a transaction in application 1 and use that one throughout the ESB for the communication with application 2.
ESBs however can be used together with JTA, JMS or JSBC transactions. So if you connect with the applications using these technologies, you can use the ESBs to handle the transactions.
Note though that the ESBs do support XA transactions, but unfortunately not much other products do. So you can use XA transactions together with JMS and JDBC, but usually when you want to use this with other applications your often forced to buy expansive custom adapters for this.