Sometimes I update my web service JAR by deleting the old one (waiting for the undeploy message to appear on the console) and putting the new one (and seeing the deploy message) and when I call it, it gives a heap size error. I have to restart the PC and from then on, it works perfectly 9999999999 times over when I call it.
I am not sure if JVM would take unrealistic high numbers for heap size.
Even if you have reasonable high number, your server CPU performance will go down as it consumes a lot of physical memory.
Also it is a matter of time when your JVM catches up with your high number.
As bill recommended , Best practice would be server restarts.
( Server restart as in stop and start your application server and not restarting your PC )
~ Alagesh (SCWCD ,OCDJWS )
"Education's purpose is to replace an empty mind with an open one"