应该不会啊用tomcat,会不会是你的数据库操作部分不完善!

解决方案 »

  1.   

    一般情况下,tomcat承载2000个客户是没有问题的。当然apache+tomcat会比单独一个tomcat要好的多。
      

  2.   

    服务器是p4 2.8g 512M内存的pc服务器会不会是因为有病毒阻塞网络造成的??
      

  3.   

    应该没什么问题的,
    内存也不是太小,首先看一下你程序里有没有没关的数据库连接,
    tomcat的设置和apache的设置是怎样的?
    再看一下是否用了太多的session?
      

  4.   

    我用的是hibernate,查询完以后都会session.close(),用的session比较多,每个客户机都要保存一个实例到session中去,这样不会有太大的影响吧?还有就是tomcat起初运行正常,但是运行一段时间以后就会频繁报http500错,这是什么原因呢?
      

  5.   

    程序问题吧,用Resin肯定是比Tomcat要快的,不过同样的代码运行结果有时不一定相同!
      

  6.   

    session过多肯定会有影响的,一个session就是一个hashmap阿
      

  7.   

    没个学生至少对应一个session,否则考试系统怎么跟踪
      

  8.   

    <property name="connection.provider_class">net.sf.hibernate.connection.DBCPConnectionProvider</property> 
    <property name="dbcp.maxActive">100</property> 
    <property name="dbcp.whenExhaustedAction">1</property> 
    <property name="dbcp.maxWait">120000</property> 
    <property name="dbcp.maxIdle">10</property> 
    <property name="dbcp.ps.maxActive">100</property> 
    <property name="dbcp.ps.whenExhaustedAction">1</property> 
    <property name="dbcp.ps.maxWait">120000</property> 
    <property name="dbcp.ps.maxIdle">100</property>我加上了连接池,但是报错,错误信息是:ORA-01000: 超出打开游标的最大数我的程序是
    public Question getQuestion(String tableName, long id) throws HibernateException{
    this.initSession();  //代开session
    Question ques=null;
    String queryStr="from com.cbit_cn.exam.dao."+tableName+" as question where question.id='"+id+"'";
    Query query = this.session.createQuery(queryStr);
    List it = query.list();
    if(it.size()!=0){
    ques=(Question)it.get(0);
    }
    System.out.println("size of it size "+it.size());
    this.closeSession();  //关闭session
    return ques;
    }我将上面这个方法循环执行100遍就会报错,好像是session释放不掉,为什么呢?释放session的代码是:
    public static final ThreadLocal DBsession = new ThreadLocal();
    public static void closeSession() throws HibernateException {
    Session s = (Session) DBsession.get();
    DBsession.set(null);
    if (s != null)
    s.close();
    }