2010/4/20 Raphaël Delaporte <[email protected]>:
> Thanks a lot !
>
> Indeed, in the 1.x branch, this is hardcoded?
> But no more in the trunk.

Trunk has a goal to support persistent and non persistent transports.
So it should work in trunk (although I haven't tested it).

>
> Raphaël
>
>
> 2010/4/20 Rafal Rusin <[email protected]>
>
>> 2010/4/20 Raphaël Delaporte <[email protected]>:
>> > Hi,
>> >
>> > Ok that's clearer for me !
>> >
>> > 1. Is there a way to explicitly commit the transaction ?
>> > In Oracle BPEL world, there is the checkpoint java embedded for example,
>> > which forces the transaction to be commited.
>>
>> There's no explicit way to do this. However you can achieve this by
>> adding blocking activity, like
>> <wait><for>'PT1S'</for></wait>
>>
>> >
>> >
>> > 2. Is the transaction XA ? Is it possible to add some custom JMS adapter,
>> > which uses the same tx for example ?
>>
>> Yes, transactions can be XA. But ODE code does begin transaction for
>> each incoming exchange:
>>
>> src/main/java/org/apache/ode/axis2/ODEService.java
>>    public void onAxisMessageExchange(MessageContext msgContext,
>> MessageContext outMsgContext, SOAPFactory soapFactory)
>>            throws AxisFault {
>>        boolean success = true;
>>        MyRoleMessageExchange odeMex = null;
>>        Future responseFuture = null;
>>        try {
>>            _txManager.begin();
>>            if (__log.isDebugEnabled()) __log.debug("Starting
>> transaction.");
>>
>> So I think this won't connect to existing JMS transaction. Neither for
>> JBI distro.
>>
>> >
>> >
>> > I like this tx approach. I think one big transaction is harder to manage
>> > because of calling webservices ... Therefore, commiting on each wait or
>> > receive is OK.
>>
>> Yes, this has bright sides too.
>>
>> >
>> > Thank you very much.
>> > Raphaël
>> >
>> >
>> >
>> > 2010/4/20 Rafal Rusin <[email protected]>
>> >
>> >> Hello,
>> >>
>> >> 2010/4/19 Raphaël Delaporte <[email protected]>:
>> >> > Hi all,
>> >> >
>> >> > I'd like to know how transactions are used in the ODE engine.
>> >> >
>> >> > I know how it works in Oracle BPEL (TX are created and commited on
>> >> > dehydration activity, like Receive, Wait, OnMessage, etc...)
>> >> > But how does it work for ODE ?
>> >> >
>> >> > For instance, if I have an onMessage activity, is a new TX started
>> when I
>> >> > received the callback ?
>> >> > And if so, when is it commited ?
>> >> >
>> >> > Thanks a lot for your help !
>> >>
>> >> ODE has two layers for transactions. First is for transport and second
>> >> for state transitions (so called JOBs).
>> >> When you invoke request to ODE, first layer stores MEX (message
>> exchange)
>> >> to
>> >> DB and registers persistent JOB for processing. That's 1st TX.
>> >> Then this job is executed in state transitions layer and calculates
>> >> response - 2nd TX.
>> >> Next, such response is passed to transport layer and response is sent
>> >> back - 3rd TX.
>> >>
>> >> State transition transaction (JOB) is executed until blocking activity
>> >> is encountered (such as WAIT or RECEIVE or 2 way INVOKE).
>> >> So if you have:
>> >> <receive>
>> >> <assign>
>> >> <assign>
>> >> <invoke>
>> >>
>> >> It will execute in one transaction until INVOKE (INVOKE_RESPONSE will
>> >> be next transaction).
>> >>
>> >> I'm not quite convinced to such approach (the other approach is to
>> >> have one big transaction), but that's what we have now.
>> >>
>> >> Regards,
>> >> --
>> >> Rafał Rusin
>> >> http://rrusin.blogspot.com
>> >> http://www.touk.pl
>> >> http://top.touk.pl
>> >>
>> >
>>
>>
>> Regards,
>> --
>> Rafał Rusin
>> http://rrusin.blogspot.com
>> http://www.touk.pl
>> http://top.touk.pl
>>
>


Regards,
-- 
Rafał Rusin
http://rrusin.blogspot.com
http://www.touk.pl
http://top.touk.pl

Reply via email to