Wednesday, March 18, 2009

Glassfish web container tuning settings

Reference: http://docs.sun.com/app/docs/doc/820-4343/abedw?a=view

Web Container Settings

Set Web container properties with the Admin Console at Configurations > config-name > Web Container.

Session Properties: Session Timeout

Session timeout determines how long the server maintains a session if a user does not explicitly invalidate the session. The default value is 30 minutes. Tune this value according to your application requirements. Setting a very large value for session timeout can degrade performance by causing the server to maintain too many sessions in the session store. However, setting a very small value can cause the server to reclaim sessions too soon.

Manager Properties: Reap Interval

Modifying the reap interval can improve performance, but setting it without considering the nature of your sessions and business logic can cause data inconsistency, especially for time-based persistence-frequency.

For example, if you set the reap interval to 60 seconds, the value of session data will be recorded every 60 seconds. But if a client accesses a servlet to update a value at 20 second increments, then inconsistencies will result.

For example, consider an online auction scenario as follows:

  • Bidding starts at $5, in 60 seconds the value recorded will be $8 (three 20 second intervals).

  • During the next 40 seconds, the client starts incrementing the price. The value the client sees is $10.

  • During the client’s 20 second rest, the Application Server stops and starts in 10 seconds. As a result, the latest value recorded at the 60 second interval ($8) is be loaded into the session.

  • The client clicks again expecting to see $11; but instead sees is $9, which is incorrect.

  • So, to avoid data inconsistencies, take into the account the expected behavior of the application when adjusting the reap interval.

Disable Dynamic JSP Reloading

On a production system, improve web container performance by disabling dynamic JSP reloading. To do so, edit the default-web.xml file in the config directory for each instance. Change the servlet definition for a JSP file to look like this:


jsp
org.apache.jasper.servlet.JspServlet

development
false


xpoweredBy
true


genStrAsCharArray
true
3

No comments:

Post a Comment