As is known, JSF stores view state in session, so when garbage collection occurs, there is nothing to collect - all states are kept alive.
Check the following:
1) In some environments sessions can be initiated for each new request - e.g. in HtmlUnit tests
2) Enable persistent sessions manager so that inactive sessions can be swapped to disc
3) Decrease size of view state - check for keep-alived objects, Seam scopes contents, etc.
Hi Nick, thanks for your reply.
What is the main purpose of Number 2? If a session is inactive, it will be invalidated on timeout.
For long session, how to enable persistent sessions? Can I set timeout for swapping out to disk? like 10 minutes.
Currently our web application can allow maximum 100 http sessions for 2G heap size. Session timeout is 30 minutes.
We like to increase concurrent session count to 1000 without increasing heap size.
Check application server documentation for configuration details.