Hi all:

After update ofbiz to 13.07.03, our system was Unstable. At last, I found
the cause was The transaction created in Event, introduced in revision
1,740,632.
And found https://issues.apache.org/jira/browse/OFBIZ-6808.
But I doubt whether it is good to do this.

In my opinion:

1. It would make more long-running transaction.
    For example, there was a event which call three services, the three
services has their own transaction before the change, but now there is one
big transaction for the event and three services, of course the transaction
would run longer time.

2. It would make a lots of transaction run longer time.
    Almost all event would do something else after call service, for
example, convert the result from service to JSON format, but the conversion
not need transaction!

3. It makes it difficult to manage transactions between services and events.
    For example, there was a event:

    public String createOrder() {

        //some business process here... and define serviceCtx

        def results = dispatcher.runSync("createOrder", serviceCtx)

        //some business process here... and return success or error at last

    }

    after call createOrder service success, i want to fire a jms
service(call it jmsIndexOrder) to index the order in Elasticsearch。
    I use secas before the change, everything work well.

    <eca service=“createOrder” event="return">
        <action service="jmsIndexOrder" mode="sync"/>
    </eca>


    but now i don't know where ant how to call jmsIndexOrder. :(


-- 
叶双明

Reply via email to