Problem whit memory after invoked pub.client:soapClient

Hello, I am sorry on my bad english. The problem occurs when I am using soapClient to send SOAP request and receive some data. Data that I am getting have 40MB which is not that big, the server shouldn’t have problems. But somehow suddenly CPU is on 100%, and after sometime everything crashed and begin restarting. Memory was set on 1GB so that shouldn’t be a problem but somehow it is. Because when I increased memory it was still working slow but I got the response.
So increasing memory resolved problem but it is not preferred solution, because what if some day I need to fetched bigger data. Anyone have idea why is this happening? Is it problem with pub.client:soapClient service?Or have some better solution for resolving it without increasing memory everytime?

thank you,
Filip

I’d say that 40MB is a considerable size for a text-based message and SOAP is not a lightweight protocol.

Important - In the IS, a 40MB message doesn’t mean that only 40MB of memory is consumed in the pipeline. It depends on the number of child flows, levels of nested flows, whether you have used “Scope” in your flows and so on.

Usually, 1GB isn’t sufficient (or recommended) for a Production instance, even if it depends on the volumes, number of interfaces you’ve deployed and more.

Performance issues are tricky to investigate as the bottleneck could be anywhere - code, hardware (CPU type, cores, disk, OS configuration, etc.), performance of integrated systems such as databases and so on. The best way is to use the process of elimination.

My opinion - To me, it is obvious that your IS instance is struggling for resources; the problem and solution could be as simple as that.

Narrowing it down -

  • Check your wrapper and instance logs to see what exactly caused the crash
  • Use profiling tools such as jvisualvm and jprofiler to investigate your CPU and memory consumption further
  • Using the above, determine if the issue is with CPU or RAM or Disk performance; if there are no obvious red flags with the hardware/OS, then the investigation becomes complex (i.e., code, memory objects and threads used by the IS instance)

Considerations -

  • Ask if your instance is spec’ed and sized properly for the volumes and message sizes that you are trying to pump through?
  • Perhaps you need to break the message down into chunks and then process them (read about large-file handling)
  • Have you installed the latest fixes?
  • Have you considered asynchronous integration (PubSub/JMS) and/or REST?

KM

3 Likes

Hi Filip,
Kasi has provided a comprehensive answer on things to check/things that could go wrong.
I would like to add a few more items that you can check within the Integration Server.

Problems with Soapclient

  • Is this a production environment ? Is there a lower environment like UAT where you can check with similar loads/message sizes to find out if soapClient alone is the problem
  • Are there many other flows/services that are simultaneously executing and may have contributed to the scarcity of resources?
  • Does this happen at a particular time of day when the load is high?

Memory Issues

  • When you say everything crashed , do you observe an out of memory error ? ( You can check wrapper logs)
  • If there is an out of memory error, then you can set JVM options to generate heap dump on out of memory error automatically.
  • What are the settings in the wrapper conf/custom_wrapper conf for min and max memory ?

Regards,
NP

1 Like

Hi Filip,

additionally provide your wM version, your OS version and some other data Kasi and NP have already requested.

Regards,
Holger