小弟请教各位大大:HTTP会话侦听器引起的性能问题

[复制链接]
查看11 | 回复0 | 2007-4-8 13:35:00 | 显示全部楼层 |阅读模式
各位大大,如果小弟说的不够清楚或者有表述问题,请跟贴说明谢谢。
开发环境: IBM Websphere Studio ApplicationDeveloper 5.0
部署环境: IBM Websphere Application 5.0, DELL PE2850 2G内存 2cpu
后台数据库 cache 5.2
用户数:平均:100~150,高峰期 200.(指用来连接服务器的终端)
IBM Tivoli的数据:线程池大小52,平均线程 26.
问题描述如下:
1.小弟为了实现在应用程序中实现负载均衡,几台服务器作为一个集群,将会话转发,计算负载的时候需要知道每台服务器上的连接数。
2.通过wsad生成了HTTP会话侦听器,wsad的说明是:“当创建会话对象、使会话对象无效或会话对象超时时,将通知这些侦听器”
3.测试环境没有问题,因为测试环境和财力限制,无法做比较大的压力测试,
4.当我部署侦听器到生产环境的时候,性能急剧下降,通过IBM Tivoli查看器,可以看到线程池里的线程成倍增长,瞬间突破了100。
5.我的疑问是请教各位如何改善这个监听器的性能,以及会造成这个情况的大概原因,小弟谢谢诸位帮忙。
6.侦听器的大至代码如下:(为节省篇幅省略了代码)
public class SessionListenernew implements HttpSessionListener {

public int count;//连接数
public String ip;
public SessionListenernew(){
super();
count=0;
ip="";
}

private void savecount(){//此处代码用于将连接数存入数据库

ApplicationServerModel asm=new ApplicationServerModel();

try {

asm.updatecount(ip,count);

} catch (EMRException e) {

}

}

private void getAddr()throws UnknownHostException{//取当前的服务器的ip

InetAddress addr = InetAddress.getLocalHost();

ip=addr.getHostAddress();

}

public void sessionDestroyed(HttpSessionEvent arg0) {
System.out.println("管理 会话监听:会话结束&quot

;
count--;
try{
this.getAddr();
}catch(UnknownHostException e){

//do nothing
}
this.savecount();
//关闭会话,并保存连接数到数据库
System.out.println("当前会话数:"+Integer.toString(count));

}

public void sessionCreated(HttpSessionEvent arg0) {
System.out.println("管理 会话监听:会话开始&quot

;
count++;
try {

this.getAddr();

} catch (UnknownHostException e) {

}
this.savecount();
//关闭会话,并保存连接数到数据库
System.out.println("当前会话数:"+Integer.toString(count));

}
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行