15
2007
Upgrade to Glassfish 2, slash your bandwidth usage by half
I’m a couple of days into making the switch from Glassfish v1 UR1 to Glassfish v2 beta-2 and I’ve gotta say that, even at beta level, this is a compelling upgrade.
There are tons of improvements in v2 (including first class clustering support), but there were two compelling features for me personally in v2 to make me move over to the new beta:
- Http Compression Support
- Much improved Virtual Domain support
The Http Compression support was a big step up. Tomcat users have had this for a while, but it was only introduced to Glassfish in v2. Jean-Francois has documented this ages ago, and you can do it all via the GUI in beta 2 (just put in “compression” equals “on” in the properties of your http-listener-1 page). This has been a killer for me as I creep closer and closer to my ADSL allowance. Check this out:
The first two days were before enabling compression (and are representative of my standard traffic profile) at just under 400Mb/day, the next two days are once I turned on compression – just under 200Mb/day. Awesome! My traffic cut in half! If I tune the default compressibleMimeTypes I might even be able to improve on that!
The other killer feature for me in v2 is much improved Virtual Domain management. I host about 5 different domains on my current server and I had all sorts of issues with default apps on virtual servers under v1.0. I would often get my “default application” for a particular server starting up twice – which led to all sort of dramas (hibernate concurrency issues, excess memory usage, etc). All that has gone away under V2.0 – and I can see from the logs everything is just starting up once! Under v2, I can also bind multiple apps to the “/” context – since they each run on different virtual servers. Awesome!
One thing I have also noticed in V2 is *much* snappier performance on both startup and render times. All my Grails apps continue to run just fine – and I took the opportunity to move to Grails 0.5 which is also much faster to startup.
The only real gotcha was the need to enable access logs (which are turned off by default), and needing to tune my log format, but once that was done my awstats continued working just fine. Also need to add -Djava.awt.headless=true to my JVM params to keep my charting stuff working happily.
Big props to the Glassfish guys. They’ve done an awesome job with this upgrade.
3 Comments + Add Comment
Leave a comment
Glen Smith
Archives
- January 2012
- November 2011
- October 2011
- September 2011
- August 2011
- July 2011
- June 2011
- April 2011
- March 2011
- January 2011
- November 2010
- October 2010
- September 2010
- August 2010
- July 2010
- June 2010
- May 2010
- April 2010
- February 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- May 2009
- April 2009
- March 2009
- December 2008
- November 2008
- October 2008
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
- August 2006
- July 2006
- June 2006
- May 2006
- April 2006
- March 2006
- February 2006
- January 2006
- December 2005
- November 2005
- October 2005
- September 2005
- August 2005
- July 2005
- June 2005
- May 2005
- April 2005
- March 2005
- February 2005
- January 2005
- December 2004
- November 2004
- October 2004
- September 2004
- August 2004
- July 2004
- June 2004
- May 2004
- March 2004
- February 2004
- January 2004
- December 2003
- November 2003
- October 2003
- September 2003

An article by Glen





Why couldn’t you have rolled your own? Jason Hunter wrote a servlet filter that does the same thing…like in 2001. It was 20 to 30 LOC I think
I guess you could do that. But wouldn’t you then have to add that filter to every app you deploy on your appserver (both your own and third party)? Sounds like a fair bit of work to me…
When it’s supported at the appserver level, I’m turning it on automatically for everything that’s generating content of type text/html, text/xml, etc. in a non-intrusive way. So it’s pretty darn convenient.
15 minutes or less to write it…and another 10 to 15 to deploy. to deploy you just have to apply to add to your .war(s) and modify web.xml
applying the filter against 3rd party apps would be the same.
I think it’s a good thing that Glassfish has incorporated, but I wouldn’t upgrade my appserver to a beta as opposed to rolling out the servlet filter.