axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ann Robinson (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-2968) Out-Of-Memory error on server side - Use of wsdl4j WSDLDefinition
Date Tue, 25 Sep 2007 15:59:50 GMT

    [ https://issues.apache.org/jira/browse/AXIS2-2968?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12530139
] 

Ann Robinson commented on AXIS2-2968:
-------------------------------------

Amila, Thanks for the comments and suggestions.

The problem is having a solution that will work in all WSDL cases, and not impact the customer's
setup or API usage.   Also, not every server environment will be resource constrained - for
those server environments, it would be nice to avoid the processing overhead.

So, I was thinking of having a configuration parameter to control how the in-memory copy of
the WSDL definition is handled on the AxisService object.  

For example, given a configuration parameter named ReduceWSDLMemoryCache (or something similar),
then the WSDL definition wrapper could query the configuration parameter.  If the configuration
setting is "True", then the wrapper takes the steps to reduce the memory used by the WSDL
defintion.  For now, that would be serializing the WSDL definition object if it can be.  When
the updates to WSDL4J are available, then the wrapper could take advantage of new APIs or
steps provided by WSDL4J.












> Out-Of-Memory error on server side - Use of wsdl4j WSDLDefinition
> -----------------------------------------------------------------
>
>                 Key: AXIS2-2968
>                 URL: https://issues.apache.org/jira/browse/AXIS2-2968
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: kernel
>            Reporter: Ann Robinson
>            Assignee: Ann Robinson
>            Priority: Critical
>         Attachments: patch_01.txt, patch_02_part1.txt, wsdlFromFileSystem.patch
>
>
> In some server-side environments, there is an out-of-memory problem when      
> attempting to handle a large number of JAXWS-based web service applications.  
>                                                                               
> In the test scenario that fails, the server is attempting to load and start   
> 100 web service applications. A variety of heap sizes was tried to see if     
> a heap size for the server could be found to work, ranging from 1 GB to 4 GB. 
> Increasing the heap size did not work - the out-of-memory error continued to  
> occur.                                                                        
> In analyzing the java heap dumps, one of the biggest consumers of the memory  
> is with the wsdl4j WSDLDefinition objects.  In the test scenario, the         
> wsdl4j-related objects consumed about a quarter to a third of the entire heap.
>                                                                               
> The WSDLDefinition object is a very heavy-weight object, much of which stems  
> from its use of the xerces dom objects as underlying support, particularly    
> for the schemas.                                                              
>                                                                               
> One area to investigate is the saving of the WSDLDefinition as a Parameter    
> in the AxisService's ParameterInclude list so that, if some component needs   
> to utilize the WSDLDefinition object, it can be accessed via the AxisService  
> object.                                                                       
>                                                                               
> Is it possible to reduce the utilization of the WSDLDefinition?               
> Some ideas are:                                                               
> (a) releasing it when it is no longer needed                                  
>          - this might not be possible to determine                            
>                                                                               
> (b) putting a wrapper on the WSDLDefinition                                   
>          - so that the WSDLDefinition,or a portion of the WSDLDefinition,     
>            can be released                                                    
>          - but if the WSDLDefinition is accessed after it was released,       
>            the wrapper can reload the WSDLDefinition transparently to the     
>            user                                                               
>                                                                               
> (c) create a layer for caching wsdl-related information                       
>          - this would allow for releasing memory based on some algorithm      
>            and/or interface that could indicate what's no longer needed       
>                                                                               

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
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