我用SSH框架开发一个系统,后台数据库是Oracle的。用tomcat运行几分钟后就不能查询数据了。

lina791211 2013-05-23 07:42:48
用SSH+Oracle开发一个网站,发布到Tomcat容器中。
刚开始一两分钟,运行无压力。
但是只要超过一两分钟,系统就无法查询数据库了。
很像断开连接。

但是不是连接数超过限制,我看着系统日志的,没有任何缓存的连接数。
Tomcat的并发连接也改了,可是还是不行。
求教各位大神,帮忙解决一下。
...全文
195 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
跳蚤图 2013-05-24
  • 打赏
  • 举报
回复
钢镚爸爸 2013-05-24
  • 打赏
  • 举报
回复
最好把你spring的配置文件贴一下
popi 2013-05-24
  • 打赏
  • 举报
回复
如果还有问题,你就要贴你的访问数据库那块代码了,是不是写的调用方式,不符合SSH框架自动释放数据库访问的模式。如果是不符合的写法,那么你要手动访问完后关闭。
popi 2013-05-24
  • 打赏
  • 举报
回复
还有session配置,你对照着看看,是不是配置有问题: <!-- 结束 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="dataSource"> <ref bean="dataSource" /> </property> <property name="lobHandler"> <ref bean="myLobHandler" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9Dialect </prop> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.generate_statistics">true</prop> <prop key="hibernate.connection.release_mode"> after_transaction </prop> <prop key="hibernate.autoReconnect">true</prop> <prop key="hibernate.cglib.use_reflection_optimizer"> true </prop> </props> </property> <property name="mappingDirectoryLocations"> <list> </list> </property> </bean>
popi 2013-05-24
  • 打赏
  • 举报
回复
估计spring配置问题吧,数据库连接使用后不自动释放导致的。 给你个配置参考 <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${jdbc.driverClassName}" /> <property name="jdbcUrl" value="${jdbc.url}" /> <property name="user" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <property name="minPoolSize" value="${minPoolSize}" /> <property name="maxPoolSize" value="${maxPoolSize}" /> <property name="maxIdleTime" value="${maxIdleTime}" /> <property name="acquireIncrement" value="${acquireIncrement}" /> <property name="maxStatements" value="${maxStatements}" /> <property name="initialPoolSize" value="${initialPoolSize}" /> <property name="idleConnectionTestPeriod" value="${idleConnectionTestPeriod}" /> <property name="acquireRetryAttempts" value="${acquireRetryAttempts}" /> <property name="acquireRetryDelay" value="${acquireRetryDelay}"/> <property name="breakAfterAcquireFailure" value="${breakAfterAcquireFailure}" /> <property name="testConnectionOnCheckout" value="${testConnectionOnCheckout}" /> </bean> 参数: jdbc.driverClassName=oracle.jdbc.driver.OracleDriver jdbc.url=jdbc:oracle:thin:@192.168.0.1:1521:orcl jdbc.username=XXXX jdbc.password=XXXX minPoolSize=2 maxPoolSize=30 #(in seconds) maxIdleTime=1800 acquireIncrement=2 maxStatements=0 initialPoolSize=2 #(in seconds) idleConnectionTestPeriod=60 acquireRetryAttempts=10 # (in milliseconds) acquireRetryDelay=1000 breakAfterAcquireFailure=false testConnectionOnCheckout=false
且活且珍惜 2013-05-24
  • 打赏
  • 举报
回复
Datasource timeBetweenEvictionRunsMillis 定时检查连接池的时间间隔 minEvictableIdleTimeMillis 连接最大空闲时间,单位为毫秒 这2个参数会保持在这段时间内连接是可用的 试一下吧
jumpheightway 2013-05-24
  • 打赏
  • 举报
回复
如果是hibernate配置链接数据库操作,那就是你的hibernate里面操作session的时候出了问题,检查一下这块,问题出在这
cole_白 2013-05-24
  • 打赏
  • 举报
回复
应该是配置的问题吧!!!

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧