Thursday, 21 April 2016

What are different Transaction Manager implementations provided by Spring ?


Local transaction managers

JmsTransactionManager
  • A transaction manager implementation that is capable of managing a single JMS resource.
  • You can connect to any number of queues or topics, but only if they belong to the same underlying JMS messaging product instance.
  • Not possible to simultaneously enlist any other kind of resource in a transaction.
    For example, using this transaction manager, it would not be possible to enlist both a SonicMQ resource and an Apache ActiveMQ resource in the same transaction.

DataSourceTransactionManager
  • A transaction manager implementation that is capable of managing a single JDBC database resource.
  • You can update any number of different database tables, but only if they belong to the same underlying database instance.

HibernateTransactionManager
  • A transaction manager implementation that is capable of managing a Hibernate resource.
  • Not possible to simultaneously enlist any other kind of resource in a transaction.

JdoTransactionManager
  • A transaction manager implementation that is capable of managing a Java Data Objects (JDO) resource.
  • Not possible to simultaneously enlist any other kind of resource in a transaction.

JpaTransactionManager
  • A transaction manager implementation that is capable of managing a Java Persistence API (JPA) resource.
  • Not possible to simultaneously enlist any other kind of resource in a transaction.

CciLocalTransactionManager
  • A transaction manager implementation that is capable of managing a Java Connection Architecture (JCA) resource.
  • Not possible to simultaneously enlist any other kind of resource in a transaction.


Global Transaction managers

JtaTransactionManager
  • If you require a transaction manager that is capable of enlisting more than one resource in a transaction, use the JTA transaction manager, which is capable of supporting the XA transaction API.
  • You must deploy your application inside a J2EE server in order to use this transaction manager.

OC4JJtaTransactionManagner
  • A specialization of the JtaTransactionManager to work with Oracle's OC4J.
  • The advantage of this implementation is that it makes Spring-driven transactions visible in OC4J's transaction monitor.

WebLogicJtaTransactionManager
  • A specialization of the JtaTransactionManager to work with the BEA WebLogic container.
  • Makes certain advanced transaction features available: transaction names, per-transaction isolation levels, and proper suspension / resumption of transactions.

WebSphereUowTransactionManager
  • A specialization of the JtaTransactionManager to work with the IBM WebSphere container.
  • Enables proper suspension / resumption of transactions.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.