synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Supun Kamburugamuva <supu...@gmail.com>
Subject Re: Concurrent Access to Dynamic Resources
Date Wed, 09 Sep 2009 14:22:14 GMT
Hi,
I think this is the price that we have to pay for enabling dynamic behavior.
If the ESB is under huge load and we synchronize these methods it won't
scale anyway.

Having two threads load the same resource is tolerable if one thread doesn't
access the resource while it is initialized halfway way.

One suggestion, I think if we can move the

initialized = true; line 166

statement in the AbstractEndpoint.java to the bottom of the init method it
will be more safer.

Thanks,
Supun..

On Wed, Sep 9, 2009 at 5:48 AM, Hiranya Jayathilaka <hiranya911@gmail.com>wrote:

> Hi Devs,
> The Axis2MessageContext class uses SynapseConfiguration#getEndpoint and
> SynapseConfiguration#getSequence methods to gain access to dynamic endpoints
> and sequences when they are not present in the message context's local
> store. However these method calls are not synchronized and from the looks of
> it I feel that if two message contexts try to access the same dynamic
> resource at the same time there is a chance that SynapseConfiguration would
> perform two remote registry lookups to fetch the same resource. This won't
> really cause any erroneous behavior but if the ESB is under a huge load
> where each message is trying to load a particular dynamic resource things
> may get out of hands.
>
> So does it make sense to bring in some synchronization into the picture? Or
> have I missed something and the above theory is not applicable?
>
> Thanks
> --
> Hiranya Jayathilaka
> Software Engineer;
> WSO2 Inc.;  http://wso2.org
> E-mail: hiranya@wso2.com;  Mobile: +94 77 633 3491
> Blog: http://techfeast-hiranya.blogspot.com
>



-- 
Software Engineer, WSO2 Inc
http://wso2.org
supunk.blogspot.com

Mime
View raw message