On a B2B (integration) server we faced a break-down in the middle of a process that runs as a daily scheduled service. Normally this service runs without problems.
In the server.log, error.log, nor audit.log is any indication of an abnormality.
We know the service, which extracts catalog information from an AS400 database and sends that out to a webMethods TN server, is high-demanding on memory.
We suspect that in this case the server ran out of memory, without an errormessage or warning, causing a break-down.
Is there a possible fix for this? As this is a live productive server, we rather have the server to keep on running, terminating only the process that runs out of memory.
The server is webMethods B2B server 4.0.1, configured memory is 192 Megabyte.
Are you running Windows or Unix? How much memory can apply to the Java Heap? The more the merrier.
Set the min/max settings for the heap to the same amount.
Also, are you running a Garbage Collection service? If not, create a Java Service and call it runGarbage and add this line:
System.gc();
Run this service on a scheduler. every few minutes. This sends a command to the JVM to run garbage and works well to manage memory.
Also, in the server.cnf file, there is a setting for garbage collection. The line should read:
watt.server.cache.gcMins=60
You may want to change it to:
watt.server.cache.gcMins=12
This sets the server call for garbage collection to every 12 minutes. The System.gc() seems to do the trick though.
I’m running a data transformation server, Sun X1, Solaris, JVM 1.3, Java Heap 768Min/768Max memory.
Hope this helps.
Ray