系统框架:
spring-framework-2.0.5
spring mvc
spring jdbcTemplate
数据库
oracle 9.2
每月主表数据量200w
容器
jboss-4.0.5.GA
web端口配置信息如下
<Connector port="8080" address="${jboss.bind.address}"
maxThreads="250" strategy="ms" maxHttpHeaderSize="8192"
emptySessionPath="true" maxPostSize="0"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"/>
数据库连接池
proxool-0.9.0RC3
配置参数如下
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close" >
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="driverUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="alias">
<value>eamdb</value>
</property>
<property name="houseKeepingSleepTime">
<value>90000</value>
</property>
<property name="prototypeCount">
<value>5</value>
</property>
<property name="maximumConnectionCount">
<value>100</value>
</property>
<property name="minimumConnectionCount">
<value>15</value>
</property>
<property name="trace">
<value>true</value>
</property>
<property name="verbose">
<value>true</value>
</property>
</bean>
JDK
j2sdk1.4.2_12
jvm启动参数-Xms256m -Xmx900m
服务器硬件:至强2g服务器,内存4g
操作系统:win2000 server
杀毒软件:瑞星
前两个星期用户反映,登陆页面输入用户名和密码后不能登陆系统,界面一直停顿在那里,后维护人员重新运行run.bat才恢复正常,但上个星期该现象变得非常频繁,因此我赶紧去现场查看,发现run.bat窗口的dos界面无任何响应,且显示的log信息仍然是启动时的信息(因在试用阶段,所以正常有用户登陆情况下,dos应有调试log信息),登陆页面,果然无法登陆,因此关闭dos控制台,重新启动run.bat,后登陆正常,于是我还反复登陆了几次,结果也正常,正准备要走出机房,客户打电话过来,所登陆界面又停顿在输入用户名密码之后了,于是赶紧看,果然,登陆又不能用了,查看dos控制抬,与刚才有问题的时候的情况一样,没反映,也没任何新的log,于是从oracle控制台看当前数据库会话,无任何死锁,也未见有长sql执行,无奈,只能重新启动计算机,重新启动数据库服务,然后启动run.bat,又正常了,后反复登陆确认没问题后,打电话给客户确认,还耐住性子继续待在机房,盯住oracle控制台,大概30分钟后,没电话打来我就先走了(有其他急事)这一天都没问题。
过了几天,因为程序版本更新,我去了机房,更新好后为了防止那个问题,重复登陆几次,结果在第10次左右,居然又发生,查看数据库会话,还是没有死锁,dos控制台死死的定在那里没响应,没任何异常信息出来,而且系统中其他非数据库的jsp页面(里面有jstl标记)可以正常显示,就是数据库相关(当然几乎是所有)的页面一点反映都没有,然后看proxool控制页面,发现15个连接会话所显示的最后执行sql都是刚开始正常时候的,然后反复重新启动jboss和数据库服务,结果情况更糟糕,才执行不到3次登陆,系统就又没相应了,实在没办法,时间紧迫,只能用死办法反复重新启动jboss和数据库服务,并多次登陆验证,最后终于好歹成了,时间已经过去一个小时了,后来又在机房待半个小时,确认没有客户夺命call了以后终于闪了。
接着当天晚上赶紧查询网上资料,有的说是内存泄露,但是控制台和几天来的log文件并没有out of memery的异常出现,而且已经设置jvm堆内存选项,最小为256m,最大为900m。有的说的连接未释放,但是我用的是spring jdbcTemplate,不用手动代码管理数据库的开关释放,并且配置用法都是仿照jpetstroe。有的说改web的线程数等参数,接着一个个的改,问题是我的开发环境根本就总没出现那样的问题,因此没办法验证上述推测,就这样一直弄到凌晨3点多,于是打算干脆明天在服务器上安装MyEclipse直接进行debug,找到问题所在。
第二天在服务器上安装好MyEclipse,然后配置好jboss server启动参数,通过MyEclipse Application Server启动jboss,刚开始的时候一切正常,神奇的事情发生了,客户半个小时内仍然反映:登陆正常!同时MyEclipse的控制台上都能正常显示出调试log,这使得我想debug的愿望落空,后来离开现场,当天正常。第三天,自己有点担心,跑去机房看,还是没问题,我还故意重新启动了几次jboss,也没问题(因为以前出现问题的时间点都是在重新启动jboss后的前几次登陆中),稍后几天,我做了几次程序更新部署,但系统一直稳定工作到今天(有5天了)。
现在系统尽管正常运行,但是心中仍然疑惑不解,为什么由MyEclipse Application Server来启动jboss就没问题了呢?况且他们使用的启动参数不都一样吗?而且在服务器上装个MyEclipse毕竟也不是个办法,只能是临时应付客户需要,希望各位能给点指教。
分享到:
相关推荐
本入门指南将帮助您了解如何有效地使用JBoss管理控制台进行日常操作。 一、JBoss管理控制台简介 JBoss管理控制台是一个基于Web的应用程序,通过HTTP/HTTPS协议访问,可以对服务器配置、部署应用、监控系统资源等...
《JBoss管理控制台指南中文版》是一份详尽的文档,主要针对JBoss企业级应用程序平台5.0的管理控制台使用与操作进行了全面的介绍。JBoss企业级应用程序平台是一个高性能、可扩展的企业应用服务器,适用于构建、部署和...
在IT领域,特别是对于使用JBOSS的企业级应用服务器的管理员和开发者而言,掌握如何设置JBOSS控制台(具体为jmx-console)的登录密码是一项至关重要的技能。这不仅关乎系统的安全性,还直接影响到对服务器监控和管理...
在JBoss应用服务器的日常管理和运维中,原生的管理控制台可能存在一些局限性,例如功能不全面、操作复杂或者性能不足等问题。为了解决这些挑战,开发者和管理员通常会寻找更为高效和易用的替代方案。"第三方JBoss...
Jboss控制台jmx-console的安全设置
随着互联网技术的发展与应用的多样化,Java作为企业级开发的重要语言之一,其相关的应用框架如JBoss和WebLogic越来越受到广泛的应用。这类应用服务器不仅支持Java应用程序的运行,还提供了丰富的管理功能和服务。...
2. **jboss-service.xml**:这是JBoss服务层的配置文件,可能会包含与数据库连接相关的信息,尤其是自定义数据源的配置。 3. **jboss-web.xml**:对于Web应用程序,这个文件在WAR包的WEB-INF目录下,它定义了Web...
### JBoss数据库配置详解 #### 一、引言 JBoss AS 4.0是一款流行的开源应用服务器,它默认集成了HypersonicDB作为其内置数据库。然而,在实际开发过程中,开发者可能需要与HypersonicDB之外的其他数据库进行集成。...
首先需要将jmx-console部署到JBoss中,具体操作是将`jmx-console.war`文件放置于`{jboss_home}\server\default\deploy`目录下。 2. **配置安全性** 为了确保只有授权用户才能访问该控制台,需要编辑`WEB-INF\...
在企业级Java应用服务器JBoss中配置数据库连接是至关重要的步骤,特别是对于使用IBM的DB2这样的高性能数据库系统。本文将详细介绍如何在JBoss 4版本中配置DB2数据库。 首先,DB2数据库是一个功能强大的关系型数据库...
"在JBoss中配置多个数据库和数据源" 在JBoss中配置多个数据库和数据源是非常复杂的,因为JBoss是一款非常强大的J2EE应用程序服务器。配置多个数据库和数据源需要了解JBoss的配置选项和数据源的配置信息。 首先,...
本文主要介绍如何配置JBoss应用服务器与MySQL数据库的连接,涉及的主要知识点包括: 1. **JDBC驱动**:为了使JBoss能够连接到MySQL,需要MySQL的JDBC驱动程序,这里是`mysql-connector-java-5.0.8-bin.jar`。这个...
通常,JBoss支持Windows、Linux和Unix等操作系统,且需要Java Development Kit(JDK)版本7或更高。确保已安装并配置好兼容版本的JDK。 2. **下载JBoss**: 访问Red Hat的官方网站或者JBoss社区网站,选择合适的...
在JBoss上配置Mysql数据源是一个常见的操作,主要用于整合JBoss与Mysql数据库,以便于应用服务器能够管理和操作数据库资源。以下是根据JBoss7和Mysql5.1的配置所涉及的知识点: 1. 数据源的定义与重要性:数据源是...
在IT领域,特别是Java应用服务器环境下,JBoss与MySQL数据库的集成是常见需求之一,而JNDI(Java Naming and Directory Interface)在此过程中扮演着关键角色。本文将深入解析如何在JBoss中配置MySQL的JNDI数据源,...
在IT行业中,数据库连接配置是开发企业级应用时不可或缺的一部分,特别是对于像JBoss这样的Java应用服务器来说。本文将详细讲解如何配置JBoss 6与SQL Server 2000之间的连接。 首先,JBoss 6是一个开源的应用服务器...
- **JMX 控制台**:介绍了如何使用 JMX (Java Management Extensions) 控制台来监控和管理运行中的 JBoss 服务器。 - **停止服务器**:提供了停止 JBoss 服务器的方法。 - **运行为 Windows 服务**:说明了如何将 ...
对于检测是否设置定时登出,这是为了防止用户长时间无操作导致系统被他人占用。在JBoss的管理控制台或者自定义应用中,可以设定一个合理的超时时间,超过这个时间用户将自动登出,增加系统的安全性。 再者,设置...
然而,在实际开发过程中,开发者可能需要与HypersonicDB之外的其他数据库进行集成。本文将详细介绍如何在JBoss上配置多种类型的外部数据库。 #### 二、JBoss数据库配置概述 JBoss 4.0通过JDBC配置文件来管理数据库...