My question is even if our maximum java heap size was set to 1.5GB in the application server admin console, why is it that our application begins to hang when it reaches memory consumption 500MB? Shouldn't it be behaving like that if it was consuming near 1.5GB already?
How did you objectively conclude that the application hangs because of memory consumption ? Like Martin said,
you should see an OOM if you run out of memory. If the application is slow after some time, it could be because of a plethora of reasons.
1. CPU usage
2. Back log of application threads
3. Costly IO operations
etc
Check for other parameters that can cause the application to misbehave.