You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by Irantha <ir...@wso2.com> on 2008/11/13 12:59:44 UTC

New synapse transaction mediator

Hi All,

I'm working on a new synapse mediator to manipulate JTA transactions.

syanpse.xml configuration for new mediator:
<transaction 
action="new|use-existing-or-new|fault-if-no-tx|commit|rollback|suspend|resume"/>

Meaning of action attribute values are explained below:
new : create a new jta transaction. generate a fault if a transaction 
already exist.
use-existing-or-new : create a new jta transaction. do nothing if a 
transaction exist.
fault-if-no-tx : generate a fault if no transaction exist.  do nothing if a 
transaction exist.
commit : commit transaction. generate a fault if no transaction exist.
rollback: rollback transaction. generate a fault if no transaction exist.
suspend: suspend transaction. generate a fault if no transaction exist.
resume: resume transaction. generate a fault if no transaction exist.

There will be a new transaction configuration section in axis2.xml to define 
UserTransaction (used to create a new transaction) and TransactionManager 
(need for suspend and resume actions ) JNDI parameters.

newly created usertransaction is assigned to axis2 message context property 
named BaseConstants.USER_TRANSACTION and newly created transaction manager 
is assigned to axis2 message context property named 
BaseConstants.TRANSACTION_MANAGER

Same message context property is used by JMS transport when creating a new 
usertransaction.
WDYT?

Thanks,
Irantha



----- Original Message ----- 
From: "Asankha C. Perera" <as...@apache.org>
To: <de...@synapse.apache.org>
Sent: Thursday, November 13, 2008 4:12 PM
Subject: Re: Problem Running Sample 57 (Dynamic Load Balance)


> Hiranya
>> org.apache.axis2.AxisFault: The service cannot be found for the endpoint 
>> reference (EPR) http://10.8.108.114:9001
>> ...
>> 2008-11-13 15:35:17,242 [-] [HttpServerWorker-1] ERROR ServerWorker Error 
>> processing POST request
>> org.apache.axis2.AxisFault: The service cannot be found for the endpoint 
>> reference (EPR) http://10.8.108.114:9001
>>
>> I ran a few debug sessions and found that the DynamicLoadbalanceEndpoint 
>> actually performs the URL rewrite accurately and forwards the message to 
>> one of the Axis2 node instances in the cluster. But the node instance 
>> cannot deal with the incoming request.
> So what you mean is that the remote service does not properly reply to 
> this request? If so can you post a TCPMon trace of the conversation?
>> The LoadBalanceFailOver service is properly deployed on the Axis2 
>> instance too.
> What if you invoke it through the same client bypassing Synapse?
>
> asankha
>
> -- 
> Asankha C. Perera
> http://adroitlogic.org
>
> http://esbmagic.blogspot.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
> For additional commands, e-mail: dev-help@synapse.apache.org
>
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


Re: New synapse transaction mediator

Posted by "Asankha C. Perera" <as...@apache.org>.
Hi Irantha
> I'm working on a new synapse mediator to manipulate JTA transactions.
>
> syanpse.xml configuration for new mediator:
> <transaction 
> action="new|use-existing-or-new|fault-if-no-tx|commit|rollback|suspend|resume"/> 
>
>
> Meaning of action attribute values are explained below:
> new : create a new jta transaction. generate a fault if a transaction 
> already exist.
> use-existing-or-new : create a new jta transaction. do nothing if a 
> transaction exist.
> fault-if-no-tx : generate a fault if no transaction exist.  do nothing 
> if a transaction exist.
> commit : commit transaction. generate a fault if no transaction exist.
> rollback: rollback transaction. generate a fault if no transaction exist.
> suspend: suspend transaction. generate a fault if no transaction exist.
> resume: resume transaction. generate a fault if no transaction exist.
>
> There will be a new transaction configuration section in axis2.xml to 
> define UserTransaction (used to create a new transaction) and 
> TransactionManager (need for suspend and resume actions ) JNDI 
> parameters.
>
> newly created usertransaction is assigned to axis2 message context 
> property named BaseConstants.USER_TRANSACTION and newly created 
> transaction manager is assigned to axis2 message context property 
> named BaseConstants.TRANSACTION_MANAGER
>
> Same message context property is used by JMS transport when creating a 
> new usertransaction.
> WDYT?
+1

I also suggest you keep the Axis2 dev list updated about this too.. and 
it'll be a good use case later on for a Axis2 service to be able to 
create a new JTA transaction from within the service code. - e.g. a 
http/s service invocation calls into a service implemented as an AAR 
file, that creates a new JTA transaction and updates two physically 
separate Databases. This might be also good for DataServices etc..

asankha

-- 
Asankha C. Perera
http://adroitlogic.org

http://esbmagic.blogspot.com


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org