根据我的经验使用下面的方法可以有效的缓解tomcat死掉的问题:   
  1.数据库操作尽量使用连接池,最好用tomcat自己提供的连接池,这样可以尽量缩短数据库操作的时间,减少内存中连接对象的数目.   
  2.进行数据库操作时尽量使用一个connection,这样可以减少连接数与数据库操作时间   
  3.修改tomcat配置,将tomcat默认内存设大一些   
  4.不要用statement执行多次查询   
  5.使用io,数据库操作时一定要用close方法关闭这些对象占用的资源   
  6.在string和stringbuffer的选择上也应该注意   
  其实出现这种情况很大的原因是代码造成的,因为jvm是自动垃圾回收的(然而这种回收的效率是很低的),所以写代码时一定要注意内存和资源的问题.   
  以前我参与了一个项目,平台刚搭建之初,系统也经常出现outofmemory的问题,发现是用statement执行多次查询的原因,在oracle里面查有很多连接不能有效释放,改掉之后就从来没有出现过了.但后来访问量上升,一天至少有上百万次,经常出现ioexception,发现是不能连上数据库的原因,用netstat -an一查,发现有大量的与数据库的io连接,导致socket端口不够造成网站速度很慢(这里面的原因是很多地方使用数据库操作不当的原因).