Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 74001 invoked from network); 14 Sep 2007 16:05:55 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 14 Sep 2007 16:05:55 -0000 Received: (qmail 91516 invoked by uid 500); 14 Sep 2007 16:05:46 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 91459 invoked by uid 500); 14 Sep 2007 16:05:46 -0000 Mailing-List: contact axis-dev-help@ws.apache.org; run by ezmlm Precedence: bulk Reply-To: axis-dev@ws.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-dev@ws.apache.org Received: (qmail 91448 invoked by uid 99); 14 Sep 2007 16:05:46 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 14 Sep 2007 09:05:46 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 14 Sep 2007 16:05:52 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 8A2C571420E for ; Fri, 14 Sep 2007 09:05:32 -0700 (PDT) Message-ID: <2001022.1189785932562.JavaMail.jira@brutus> Date: Fri, 14 Sep 2007 09:05:32 -0700 (PDT) From: "Ann Robinson (JIRA)" To: axis-dev@ws.apache.org Subject: [jira] Updated: (AXIS2-2968) Out-Of-Memory error on server side - Use of wsdl4j WSDLDefinition In-Reply-To: <11387116.1184536084448.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/AXIS2-2968?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Ann Robinson updated AXIS2-2968: -------------------------------- Attachment: patch_02_part1.txt The attached patch, patch_02_part1.txt, contains the initial implementation of the light-weight wsdl definition wrapper and changes to various components to use the wrapper in cases where the WSDL4J wsdl definition is saved as a parameter on the AxisService object instance. This initial implementation is intended to be used on the current Axis2 so it does not require any updates to the WSDL4J. In this case, the wsdl definition wrapper delegates the wsdl definition interface to the WSDL4J implementation. What this gives us is a way to migrate to a new version of WSDL4J when the WSDL4J becomes available - in a more transparent fashion to users of the wsdl definition - only the wrapper needs to be updated to do the memory reduction steps in those environments that need it > 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 > > > 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