SOAP TRANSACTIONS DEMO

PLEASE NOTE: YOU NEED TO HAVE APACHE ANT INSTALLED BEFORE YOU CAN RUN THIS DEMO!!!

Download from http://ant.apache.org

1. ABOUT THIS DEMO

This demo illustrates how you can use Atomikos ExtremeTransactions for dealing with 
web service transactions that span multiple service providers and/or clients.

2. ARCHITECTURE

The architecture of this demo is as follows: the Client starts a transaction and calls the WebShop within that scope.

Client --> WebShop

For the purpose of this demo, things have been implemented with 'classical' transactions (with the notable difference that these transactions can now reach across web service implementations). This means that both the Client and the WebShop operate with the same transaction scope. In other words: when the client invokes the WebShop then the overall effect depends entirely on the transaction outcome. If the global transaction commits then the WebShop will commit its work as well. On the other hand, if the global transaction results in a rollback, then the WebShop will rollback too.

How do we do this? By including special headers in each SOAP message (to relate the different service invocations) and by 
later co-ordinating these invocations with a termination protocol 
(this happens behind the scenes, invisible to both service implementations). 
The only thing each service needs to do is install (add) the Atomikos handlers to its message processing chain. 

3. RUNNING THE DEMO

To run the demo, follow these steps. 

STEP 1: copy your license jar file into the top-level lib folder of this product's installation (contact sales@atomikos.com if you don't have a license)
STEP 2: make sure that you have Apache Ant installed on your system
STEP 3: make sure to shut down any remaining services to avoid port conflicts.
STEP 4: execute the startServer script and wait until it reports that the server is running.
STEP 5: execute the startClient script.

4. EDITING AND BUILDING THE DEMO

To build the demo, you need Apache Ant (to run the build.xml scripts):

-open a command window (shell)
-type 'ant client-build' to rebuild the client
-type 'ant server-build' to rebuild the server

5. TROUBLESHOOTING

If it doesn't work, make sure that the following hold:

-make sure to use JDK 1.5 or higher
-make sure you have the JDK, not the JRE installation of Java 5
-make sure to have Ant installed
-make sure that ExtremeTransactions is installed close to the root of your disk (or you will get "Input line is too long" errors)
