I have a java web application (version 1.6) that makes numerous calls to external services to obtain / exchange information. Calls are made through libraries generated from a wsdl (with wsimport).
The problem presented by the application is that there is a progressive increase in the use of memory (OldGen) throughout the day, which means that at a certain moment they produce FULL GC and slow down a lot.
Examining a memory dump, I have seen that the largest object in memory is a byte [] type element that contains mainly the calls (inputs / responses) that are exchanged with the external systems that it commented on. You can even see in that object, String with names of classes, or URLs that are used in the application, ....
The application's log level is set to ERROR mode, so it would not be appropriate for those logs to be recorded. Also, because of the format of those input / output logs, they are not established by the code itself, but rather, it is something that, I suppose, is established in the virtual machine itself (sunone7).
Does anyone have any clue about this? How to know who creates that tracked object and how can that option be disabled or cleaned up? Is there an option in the server.xml or somewhere else that may be doing this?
Greetings and thanks