Project

General

Profile

Sample-jta-spring » History » Revision 7

Revision 6 (Henning Blohm, 01.05.2014 13:37) → Revision 7/16 (Henning Blohm, 02.05.2014 09:49)

h1. Using a Spring configured full-blown transaction manager across modules in Z2 

 As does [[Sample-jta-plain]], [[Samples-jta-plain]], so does this sample demonstrate how to use Z2 with the Atomikos transaction manager. In this case however, we choose to use the Spring framework to configure the transaction manager and enable re-use using Z2's support for modular Spring applications (see also [[How to Spring]]). 

 The Wiki page [[How_to_TransactionManager]] explains the general principles behind transaction handling in Z2. 

 This sample is stored in "z2-samples.jta-spring":http://redmine.z2-environment.net/projects/z2-samples/repository/z2-samples-jta-spring. It implements exactly the same scenario as [[Sample-spring-hibernate]] with the exception of not using the built-in JTA implementation. 

 h2. Prerequisites 

 You need to run Java DB as network server on localhost. This is explained next. 

 The application will create a database "z2-samples" 

 {{include(How to run Java db)}} 

 h2. Running the sample 

 This sample is run as explained in [[How to run a sample]]. The 5 minutes version: 

 <pre><code class="ruby"> 
 mkdir install 
 cd install  
 git clone -b master http://git.z2-environment.net/z2-base.core 
 git clone -b master http://git.z2-environment.net/z2-samples.jta-spring 

 # on Linux / Mac OS: 
 cd z2-base.core/run/bin 
 ./gui.sh 

 # on Windows: 
 cd z2-base.core\run\bin 
 gui.bat 
 </code></pre> 

 h2. Verifying 

 When everything is up, go to http://localhost:8080/jta-spring. You see something like this:  

 !jta-spring-thingies.png! 

 And indeed, it's the same database we use elsewhere. 

 h2. Now to the point... 

 This sample illustrates how to use a third-party transaction manager, the Atomikos implementation in this case, in a modular application as indicated in    [[How_to_TransactionManager]]. This in conjunction with Spring resulting in a full-blown, highly adaptable and completely modular environment, scalable in deployment and development.