axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ann Robinson <robins...@us.ibm.com>
Subject Re: [Fwd: Re: svn commit: r495106 [2/10] - in /webservices/axis2/trunk/java/modules: integration/ integration/test/org/apache/axis2/engine/ integration/test/org/apache/axis2/mtom/ kernel/src/org/apache/axis2/addressing/ kernel/src/org/apache/axis2/client/ kernel/src...]
Date Fri, 12 Jan 2007 18:18:28 GMT

The synchronization of the tables inside of the ConfigurationContext object
is a discussion of normal usage of those tables.  The message context
serializiation does not add synchronization other than to try to reduce the
synchronization from class method level to smaller blocks.  Hashtables are
not synchronized in Java and  any concurrent modification is allowed unless
some effort is made to oversee access to those tables.

The ConfigurationContext object contains tables, for instance, for all of
the OperationContext objects and all of the ServiceGroupContext objects.
If you don't want to synchronize access to these tables, what's the best
way to maintain the integrity of having multiple concurrent accessors?

Ann

WebSphere Development, Web Services Engine
IBM




                                                                           
             Sanjiva                                                       
             Weerawarana                                                   
             <sanjiva@opensour                                          To 
             ce.lk>                    axis-dev@ws.apache.org              
                                                                        cc 
             01/12/2007 10:50                                              
             AM                                                    Subject 
                                       Re: [Fwd: Re: svn commit: r495106   
                                       [2/10] - in                         
             Please respond to         /webservices/axis2/trunk/java/modul 
             axis-dev@ws.apach         es: integration/                    
                   e.org               integration/test/org/apache/axis2/e 
                                       ngine/                              
                                       integration/test/org/apache/axis2/m 
                                       tom/                                
                                       kernel/src/org/apache/axis2/address 
                                       ing/                                
                                       kernel/src/org/apache/axis2/client/ 
                                       kernel/src...]                      
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Whoa. Can you explain exactly what you're doing in these new tables Ann?
This is going to introduce a major performance bottleneck and if this is
to make deser work (closer to) right I'm going to reinstate my -1 in a
big way.

Or are you suggesting this is to address race condition that was there
previously?

Sorry :(. I guess I didn't understand the proposed changes as well as I
thought I did!

BTW does this code work right?
>   synchronized (applicationSessionServiceGroupContextTable) {
>     if (applicationSessionServiceGroupContextTable != null)
If the object can be null then how can you sync on that?

Sanjiva.

On Fri, 2007-01-12 at 09:54 -0600, Ann Robinson wrote:
> Hi, Deepal,
> The synchronized blocks in ConfigurationContext.java are intended to
> maintain the integrity of the critical tables held inside
> ConfigurationContext, and hopefully are placed in such a way to
> minimize the time spent inside of synchronized blocks. It can take a
> few implementation design iterations to reach the right balance
> between having no synchronization control and maintaining the list
> integrity.
> Ann
>
> WebSphere Development, Web Services Engine
> IBM
>
> Inactive hide details for Deepal Jayasinghe
> <deepal@opensource.lk>Deepal Jayasinghe <deepal@opensource.lk>
>
>
>                                 Deepal Jayasinghe <deepal@opensource.lk>
>
>                                 01/11/2007 10:35 PM
>                                 Please respond to
>                                 axis-dev@ws.apache.org
>
>
>                To
>
> "axis-dev@ws.apache.org" <axis-dev@ws.apache.org>
>
>                cc
>
>
>
>           Subject
>
> [Fwd: Re: svn
> commit: r495106
> [2/10] -
> in /webservices/axis2/trunk/java/modules: integration/
integration/test/org/apache/axis2/engine/
integration/test/org/apache/axis2/mtom/
kernel/src/org/apache/axis2/addressing/ kernel/src/org/apache/axis2/client/
kernel/src...]
>
>
>
> Hi Bill;
>
> Do you think its a good idea to have synchronized block (specially in
> hot place like ConfigurationContext) , doesn't that slow down Axis2 ?
>
> Thanks
> Deepal
>
> [svn text for ConfigurationContext.java updates removed by Ann
> Robinson]
>
>
>
--
Sanjiva Weerawarana, Ph.D.
Founder & Director; Lanka Software Foundation; http://www.opensource.lk/
Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
Director; Open Source Initiative; http://www.opensource.org/
Member; Apache Software Foundation; http://www.apache.org/
Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/


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


Mime
View raw message