Blogging Roller
While rollerweblogger.org is down, I'll be blogging here



Subscribe to "Blogging Roller" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.
 

 

Wednesday, June 26, 2002
 
Low-cost Servlet ISPs and shared Java VMs
Servlet ISPs in my price range ($30/month or less) generally offer to host you on either a shared or a dedicated Java VM.  The dedicated Java VM is usually the more expensive option.  I'm here to tell you: spend the extra money and go with a dedicated Java VM.

After experiencing first-hand the instability of a shared JVM and hearing from my ISP that a shared JVM setup cannot offer the same stability as PHP or ASP, I wrote up some questions for the resin-interest mailing list.  Resin is the Servlet engine that my former ISP uses.  The responses convinced me that, in the Servlet ISP world, shared Java VMs should be considered harmful.  Here are my questions and for each my summary of the answers:

Question 1) Is the shared JVM solution an unworkable solution for a hosting service? Resin's classloader hierarchy should keep apps from interfering with each other and the webapp-reload capability should eliminate the need to restart the server when webapps get re-deployed.  Right?

Yes, generally Servlet engine classloaders should prevent webapps from interfering with each other.   However, if one user's app does really bad things (e.g. deadlock, infinite loop, etc.) the the whole JVM could become unresponsive.
Question 2) What would cause the JVM to crash all of the time? Unreleased resources such as DB connections? System properties that interfere with each other?

Even well behaved webapps can cause JVM crashes or lockups.  JVMs do still have some serious and fatal bugs and if a user's webapp tickles one of these JVM bugs, then your shared JVM will keep on crashing until that webapp is undeployed.

Question 3)  Other app servers that I have used will automatically restart a JVM if that fails or becomes non-responsive - can Resin do this? And if Resin can do it, then why can't my hosting service do it?

Resin will automatically restart a JVM that has crashed and Resin includes a ping mechanism to detect and restart JVMs that have become unresponsive.  This is great, but it does not always work.  For example, on UNIX an unresponsive JVM might become a zombie process, making it difficult to restart.  Another example, my former ISP claimed that ping did not always detect unresponsive JVMs.

In conclusion, if you want a low-cost Servlet ISP for your personal website, your Java-based weblogging software, or your small organization, you should pay the extra money and get yourself a dedicated JVM.  Also, try not to get an ISP that sucks. 11:32:41 PM    
New ISP
I've selected a new Servlet hosting ISP.  I'll post the details once Roller is up and running. 2:33:33 PM    
localBlog again
In case you missed my earlier post about localBlog, I will mention it again.  Jeremy has now added support for Velocity-based page templates.  Try it out and encourage him to continue development, we need a nice Java-based client-side blogger. 9:19:35 AM    



Click here to visit the Radio UserLand website. © Copyright 2002 David M Johnson.
Last update: 8/20/2002; 12:06:29 AM.
This theme is based on the SoundWaves (blue) Manila theme.
June 2002
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
May   Jul


What is this webpage?

This is my old weblog. I only blog here when my real weblog Blogging Roller is experiencing technical difficulties.