Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Info
titleAPI-created datasources

Since the datasources are created via the BTM API (ie: not with ResourceLoader) it is up to the API user to manage their lifecycle, mainly calling init() before usage and close() at shutdown.
This is why the two init-method and destroy-method attributes are set: to have Spring take care of that lifecycle.

Step

...

3: Configure JMS connection factory beans

The next things you will need to configure are the JMS connection factories.

...

Info
titleAPI-created connection factories

Since the connection factories are created via the BTM API (ie: not with ResourceLoader) it is up to the API user to manage their lifecycle, mainly calling init() before usage and close() at shutdown.
This is why the two init-method and destroy-method attributes are set: to have Spring take care of that lifecycle.

Step

...

4: Configure BTM beans

The next thing you need to do is configure beans for BTM.

Code Block
XML
XML
<!--  Bitronix Transaction Manager embedded configuration -->
<bean id="btmConfig" factory-method="getConfiguration" class="bitronix.tm.TransactionManagerServices">
	<property name="serverId" value="spring-btm" />
</bean>

<!-- create BTM transaction manager -->
<bean id="BitronixTransactionManager" factory-method="getTransactionManager"
	class="bitronix.tm.TransactionManagerServices" depends-on="btmConfig" destroy-method="shutdown" />

Step

...

5: Configure Spring PlatformTransactionManager

Next, you need to create a Spring PlatformTransactionManager. There are many of them but the one we are interested in is the JtaTransactionManager. This is required as Spring internally uses PlatformTransactionManager for all transactional work.

...

This is really all you need to get JTA support with BTM inside Spring. You could directly make use of the JtaTransactionManager bean in your code but there are more elegant solutions: using Sping's AOP support to get declarative transaction management.

Step

...

6: Configure declarative transaction management

This can easily be achieved thanks to Spring's TransactionProxyFactoryBean.

...