Objective: Demonstrate
Table of Contents |
---|
Introduction
This sample demonstrates the use of the Transaction Mediator in using a sample distributed transaction.
Prerequisites
Refer to Prerequisites section in ESB Samples Setup page.
Building the Sample
1. Start the ESB with the
...
synapse configuration numbered 267
...
, by running the following command.
wso2esb-samples.sh -sn 267
- Start the Axis2 server and deploy the
SimpleStockQuoteService
if not already done.
...
title | Infor |
---|
...
wso2esb-samples.bat -sn 267
For more information on starting ESB with different synapse configurations, refer to section Starting Sample ESB Configurations.
2. A message should appear in the command or text Linux console stating the server started successfully.
3. The synapse configuration for the ESB used for this sample is provided in <ESB_HOME>/repository/samples
/synapse_sample_267.xml
as shown below:
Code Block | ||||
---|---|---|---|---|
| ||||
<definitions xmlns="http://ws.apache.org/ns/synapse" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ws.apache.org/ns/synapse http://synapse.apache.org/ns/2010/04/configuration/synapse_config.xsd"> <sequence name="myFaultHandler"> <log level="custom"> <property name="text" value="** Rollback Transaction**"/> </log> <transaction action="rollback"/> <send/> </sequence> <sequence name="main" onError="myFaultHandler"> <in> <send> <endpoint> <address uri="http://localhost:9000/services/SimpleStockQuoteService"/> </endpoint> </send> </in> <out> <transaction action="new"/> <log level="custom"> <property name="text" value="** Reporting to the Database esbdb**"/> </log> <dbreport useTransaction="true" xmlns="http://ws.apache.org/ns/synapse"> <connection> <pool> <dsName>java:jdbc/XADerbyDS</dsName> <icClass>org.jnp.interfaces.NamingContextFactory</icClass> <url>localhost:1099</url> <user>synapse</user> <password>synapse</password> </pool> </connection> <statement> <sql>delete from company where name =?</sql> <parameter expression="//m0:return/m1:symbol/child::text()" xmlns:m0="http://services.samples" xmlns:m1="http://services.samples/xsd" type="VARCHAR"/> </statement> </dbreport> <log level="custom"> <property name="text" value="** Reporting to the Database esbdb1**"/> </log> <dbreport useTransaction="true" xmlns="http://ws.apache.org/ns/synapse"> <connection> <pool> <dsName>java:jdbc/XADerbyDS1</dsName> <icClass>org.jnp.interfaces.NamingContextFactory</icClass> <url>localhost:1099</url> <user>synapse</user> <password>synapse</password> </pool> </connection> <statement> <sql>INSERT into company values ('IBM','c4',12.0)</sql> </statement> </dbreport> <transaction action="commit"/> <send/> </out> </sequence> </definitions> |
14. Use the synpase_sample_652.xml
as the synapse confiuration file and start the ESB with that synpase configuration file.2Deploy the back-end service SimpleStockQuoteService and start the Axis2 server using the instructions given in section Starting Sample Back-End Services.
Info | ||
---|---|---|
| ||
WSO2 ESB comes with a default JTA transaction manager (Atomikos), which allows you to run distributed transactions without deploying the ESB on an external application server. |
5. Define two XA datasources for above two datasources.
...