Hi

CXF 3.0.10 (Java 6+) and CXF 3.1.7 (Java7+) are the latest CXF releases - try either of them.

Cheers, Sergey
On 26/08/16 01:24, Brad wrote:
Hi



This is my first post, so apologies if I don't follow protocol.



We've got a client with a very large, complex, _statefull_ WSDL interface
we've had to build against using CFX 2.2.12.  We're running into big
problems with memory when we try to scale the solution to larger numbers of
users, because each session is taking around 100MB of memory.



Looking at the jmap output with MAT I can see that most of the memory
appears to be used by org.apache.ws.commons.schema.XmlSchema objects holding
Java representations of the XSD:



Class Name
| Shallow Heap | Retained Heap | Percentage

----------------------------------------------------------------------------
-------------------------------------------------

class org.apache.cxf.BusFactory @ 0x725cefd60
|           24 |   288,197,368 |     24.19%

|- java.util.WeakHashMap @ 0x725cefdd0
|           56 |   288,197,144 |     24.19%

|  |- java.util.WeakHashMap$Entry[16] @ 0x725cefe08
|           80 |   288,197,040 |     24.19%

|  |  |- java.util.WeakHashMap$Entry @ 0x7392cd478
|           40 |   144,098,760 |     12.09%

|  |  |  |- org.apache.cxf.bus.CXFBusImpl @ 0x73aaa08b8
|           56 |   144,098,680 |     12.09%

|  |  |  |  |- org.apache.cxf.wsdl11.WSDLManagerImpl @ 0x73aade0c0
|           40 |   143,827,152 |     12.07%

|  |  |  |  |  |- org.apache.cxf.common.util.CacheMap @ 0x73f26bf50
|           24 |   103,164,672 |      8.66%

|  |  |  |  |  |  |- org.apache.cxf.service.model.ServiceSchemaInfo @
0x743cfce50|           24 |   103,164,136 |      8.66%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x73f2aacb8
|          120 |    20,287,400 |      1.70%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x741f53c18
|          120 |    14,611,264 |      1.23%

|  |  |  |  |  |  |  |- org.apache.xerces.dom.DeferredDocumentImpl @
0x73b5a64e0 |          192 |    11,852,864 |      0.99%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x73b5a6258
|          120 |     3,218,816 |      0.27%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x7432110d0
|          120 |     3,077,088 |      0.26%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x73b22b730
|          120 |     2,965,424 |      0.25%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x73edaf680
|          120 |     2,618,728 |      0.22%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x73ee15e70
|          120 |     2,480,848 |      0.21%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x73cde3a50
|          120 |     2,453,208 |      0.21%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x73cb881b0
|          120 |     1,997,872 |      0.17%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x741cf8798
|          120 |     1,912,032 |      0.16%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x73d9e1c20
|          120 |     1,835,784 |      0.15%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x73af69110
|          120 |     1,712,048 |      0.14%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x743b856c0
|          120 |     1,431,512 |      0.12%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x73b89cdd0
|          120 |     1,407,688 |      0.12%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x741ad5290
|          120 |     1,381,272 |      0.12%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x74287d8c8
|          120 |     1,285,424 |      0.11%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x742cc5f80
|          120 |     1,277,136 |      0.11%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x741d8abb0
|          120 |     1,263,248 |      0.11%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x74320c8e8
|          120 |     1,259,544 |      0.11%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x7428b39b0
|          120 |     1,257,264 |      0.11%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x7426d38c8
|          120 |     1,229,744 |      0.10%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x743266500
|          120 |     1,159,976 |      0.10%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x741faf868
|          120 |     1,099,520 |      0.09%

|  |  |  |  |  |  |  |- org.apache.ws.commons.schema.XmlSchema @ 0x7420e7470
|          120 |     1,024,232 |      0.09%

.



I thought perhaps I could get the schema objects out of memory if I forced
the schema checks to be disabled, but this didn't help:

((BindingProvider)mPortType).getRequestContext().put("schema-validation-enab
led", "false");



So, I'm hoping for some guidance on how to proceed.  Is there a way to
actually prevent the schemas from being needed in memory?  If not, is there
a way to have only one instance in memory that can be used to validate all
the request/response messages?  Are the any guidelines for how to build
clients to statefull services in CXF?



Thanks very much in advance for your help.  Please let me know if I need to
provide more information.



Kind regards,

Brad




--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Reply via email to