Red Hat Training

A Red Hat training course is available for Red Hat Fuse

2.3. OSGi Transaction Architecture

Overview

Figure 2.2, “OSGi Transaction Architecture” shows an overview of the OSGi transaction architecture in Red Hat JBoss Fuse. The core of the architecture is a JTA transaction manager based on Apache Geronimo, which exposes various transaction interfaces as OSGi services.

Figure 2.2. OSGi Transaction Architecture

OSGi Transaction Architecture

OSGi mandated transaction architecture

The JTA Transaction Services Specification section of the OSGi Service Platform Enterprise Specification describes the kind of transaction support that can (optionally) be provided by an OSGi container. Essentially, OSGi mandates that the transaction service is accessed through the Java Transaction API (JTA).
The transaction service exports the following JTA interfaces as OSGi services (the JTA services):
  • javax.transaction.UserTransaction
  • javax.transaction.TransactionManager
  • javax.transaction.TransactionSynchronizationRegistry
Only one JTA provider should be made available in an OSGi container. In other words, the JTA services are registered only once and the objects obtained by importing references to the JTA services must be unique.

Spring transaction integration

The Red Hat JBoss Fuse transaction service exports the following additional interfaces as OSGi services:
  • org.springframework.transaction.PlatformTransactionManager
  • org.apache.geronimo.transaction.manager.RecoverableTransactionManager
By obtaining a reference to the PlatformTransactionManager OSGi service, it is possible to integrate application bundles written using the Spring transaction API into the Red Hat JBoss Fuse transaction architecture.

Reference

For more details about the OSGi transaction architecture, see the introductory chapter from Deploying into the OSGi Container.