Your problem could be caused by a few things (at a conceptual
You could simply have too many simultaneous users or user
You could be attempting to process too many user requests
You could be attempting to process requests that are too large (in
You could have a memory leak ... which could be related to some of
the above issue, or could be unrelated.
There is no simple solution. (You've tried the only easy solution ...
increasing the heap size ... and it hasn't worked.)
The first step in solving this is to change your JVM options to get it
to take a heap dump when a OOME occurs. Then you use a memory dump
analyser to examine the dump, and figure out what objects are using too
much memory. That should give you some evidence that will allow you to
narrow down the possible causes ...