on 12-15-2006 11:32 AM
Dear All,
XI 3.0 SP15
JVM changes:
server0: -xmx 1536 -maxperm 288 (standard +50%).
Our problem seems to be related to a high memory usage, but after following all available SAP tuning material and altering the JVM parameters accordingly we still can't work out what is wrong.
Our basic problem is that once a large message (16mb+) has been processed (and it does process successfully), the memory is not completely freed.
This allows three large messages to process (one at a time) before the fourth message blows the memory (permanent generation is full, no more heap to allocate).
Long running garbage collection is observed and eventually full GCs followed by an OutOfMemory error.
There is a strange phenomenon that if we leave the system for about 60 minutes after the last message processes, then re-send another message, significant memory is cleared with a full garbage collect.
We are using a custom Java mapping to translate a CSV flat file into XML, then the XML gets mapped through XSL and finally translated through XSL into an IDoc.
The initial CSV is uploaded into XI via the HTTP adapter and is about 2MB in size.
Through message tracing we can see that the resultant XML is generated in about 10 minutes and is 11Mb in size.
The Java developer has used the Spring framework to create a generic CSV to XML reader to perform the translation.
I know from the tuning guides that using XSL to perform translations on large XML files means that the memory used is about 20 x (message size). We can cope with that, but we think we have a memory problem with stuff not being cleared after.
I am about to undertake a long exercise with Sherlock to try and identify the problem.
Does anyone know off-hand, of any issues with memory clearance?
Are there any caches that get cleared after 60 minutes?
Has anyone had any issues with Spring classes in memory?
I am definately not interested in mapping in ABAP or anything like that.
The code is written and is what it is. I just want to try and understand what could be happening with the memory not being cleared in time.
Many thanks.
Darryl
Hi
Also check your code, some times , many no of and many times objects may be used , may not be destroyed some unnecessary ones may occupy memory,
try to check loops..
if possible give code so that , easy to solve to any one.
Also
Check OSS Note 901080.
Symptom
When trying to create a Message-Mapping based on XSD that contains recursive structure definitions, the Integration Builder throws OutOfMemoryError or StackOverflowError.
Other terms
StackOverflowError, Message mapping, OutOfMemoryError
Reason and Prerequisites
Program error in XI 3.0
Solution
Install XITOOLS 3.0 SP 14 patch level 5, or later.
Also see some links
Regards
Chilla..
Message was edited by:
Chandra Sekhar Chilla
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Darryl,
did you already try to change the parameters of the garbage collection?
You could even use one of the other GCs...
Kind regards,
Dennis
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Nazlie,
Unfortunately we still get the same problem.
We haven't managed to solve this yet.
I am hoping that an upgrade to a later SP level will cure the problem.
When performing our analysis, it did seem that the Java code used to perform the mapping was the problem. All garbage collection analysis showed new classes being created (class sun.reflect.GeneratedSerializationConstructorAccessor) for each new large message. The previous classes didn't seem to get freed until a much later time.
We spent hours ensuring that all referenced objects were being set to null after use, and that all objects could be freed.
Still no solution.
We did find the following to OSS notes useful though:
NOTE: 520684 details the ESM buffer error.
NOTE: 932005 details the EG memory leak error.
Regards,
Darryl
User | Count |
---|---|
80 | |
9 | |
9 | |
7 | |
7 | |
7 | |
6 | |
5 | |
5 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.