Factories low in memory (Error 503)

Hi,

I have a sequence that stores data in a Domino form.
If I invoke the sequence by code, for example 50 times, I get error 503:
Factory running low in memory.

I set in Factory properties:

High Memory Mark (%) 95
Low Memory Mark (%) 85

JVM Options -Xms64m

but it does not work.

I also tried to set JVM Options -Xms128m but I cannot start the component factory.

What can I do?

Any help would be appreciated.

Hi Raffaele,

Your problem is a common one. The 503 error is sent after the ComponentFactory has reached its limits for Memory resources.

It is first important to understand the mechanics of sequence processing. Each message instance is processed in parrallel and has a minimum requirement on memory to complete its processing. Finding out the minimum requirement is the first problem to overcome. I have used jvmstat from Sun Microsystems in the past to profile the memory consumption of the ComponentFactory while it processes one message instance.

Once you know the memory requirement for one message, setting up the ComponentFactory for parrallel processing is quite easy.

The -Xms64m setting you see in the JVM options tells the JVM to start with a minimum of 64MB. The default maximum allocated memory for a JVM is also 64MB so this serves to set the available memory to exactly 64MB.

If you wish to increase this, you have to increase the maximum value as well. A good value to begin with might be, -Xms256m -Xmx256m. Adding the -Xmx JVM setting serves to override the default of 64MB.

If you are interested in how to “tune” your installation to enable it to process N messages in parrallel, I suggest you download a recent performance report I wrote on the subject. This is available after you fill out the form at the following URL

http://www1.softwareag.com/Corporate/Solutions/integration/Service_Integration/wp_request.asp

Let me know if the paper is helpful.

Regards,