一台服务器,40台客户机,用20台的时候基本正常,但是40台同时使用的时候就经常出现网页打不开的错误,而且有的时候报http500的错误。 程序就是一个考试系统的web应用,40台考试机,每个机器是考生登录后考试,用到了struts和hibernate 从各位高手的经验来看,是tomcat的问题还是程序的问题? 用resin是不是稳定些,或者用apache+tomcat还是apache+resin? 高手指点! |
|
10分 |
应该不会啊用tomcat,会不会是你的数据库操作部分不完善!
|
10分 |
40个一点都不多,应该是你的程序有待改善
|
10分 |
一般情况下,tomcat承载2000个客户是没有问题的。当然apache+tomcat会比单独一个tomcat要好的多。
|
10分 |
你的服务器配置是什么。加点内存看看。
|
服务器是p4 2.8g 512M内存的pc服务器
会不会是因为有病毒阻塞网络造成的?? |
|
10分 |
应该没什么问题的,
内存也不是太小,首先看一下你程序里有没有没关的数据库连接, tomcat的设置和apache的设置是怎样的? 再看一下是否用了太多的session? |
我用的是hibernate,查询完以后都会session.close(),
用的session比较多,每个客户机都要保存一个实例到session中去,这样不会有太大的影响吧? 还有就是tomcat起初运行正常,但是运行一段时间以后就会频繁报http500错,这是什么原因呢? |
|
5分 |
用连接池
|
5分 |
在数据库连接的时候应该用连接池
|
5分 |
程序问题吧,用Resin肯定是比Tomcat要快的,不过同样的代码运行结果有时不一定相同!
|
5分 |
session过多肯定会有影响的,一个session就是一个hashmap阿
|
5分 |
连接池,对象的释放,程序是否有死锁……
|
5分 |
没个学生至少对应一个session,否则考试系统怎么跟踪
|
5分 |
应该是对象释放的问题,特别是数据库连接。如果使用连接池,看看最大连接数是否设置过低
|
5分 |
帮顶
|
5分 |
UP
|
5分 |
应该是数据库连接池的问题,连接池释放是不是及时?
|
<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: 超出打开游标的最大数 我的程序是 我将上面这个方法循环执行100遍就会报错,好像是session释放不掉,为什么呢? 释放session的代码是: |
|
关注ing
|