`

项目运行一段时间后,cannot open connection

阅读更多
我的一个项目用的框架是spring1.2+hibernate3.1+struts1.2,应用服务器是webshpere,但是没有用websphere的连接池,用的是apache的dbcp。

在测试机上内部运行测试一段时间后,会报cannot open connection 错误,经分析,应该是并发连接数量不够用的缘故,觉得可能是apache的dbcp有问题,明天准备用websphere的连接池更换再试试。

但疑惑的是,我对数据库操作,都是通过spring 的hibernateTemplate来操作的,hibernateTemplate封装了对链接的关闭操作,事务用的是声明式事务,如果事务配置正确,则会在执行完事务后关闭链接;如果事务配置不正确,则会在执行完数据库操作之后关闭链接,更不存在事务问题,怎么会出现链接不够用的情况呢???如果是dbcp的问题,那使用spring+hibernate是否就不能用tomcat做应用服务器呢,因为tomcat的连接池用的就是dbcp啊??

不知道哪位朋友遇到过这种问题并解决了这种问题,因为我在网上找到的都只是有人提出了这个问题,但是没有人能给出个解决方案,希望不吝赐教。

由于是测试机,所以在项目出现cannot open connection 错误,用户几分钟不做任何操作后,又可以重新操作,说明是连接池在达到了maxWait之后收回了connection,用户再操作时能够重新分配到connection,说明cannot open connection 错误的确是链接数量达到了连接池的maxActive所导致。

不知道有哪位朋友可以赐教这个问题,非常感谢
分享到:
评论
15 楼 Qieqie 2007-05-13  
引用
有一新手拷贝别人代码时没拷finally的内容。。。我吐血啊吐血。。。


呵呵 框架好用吧 至少JdbcTemplate还是能够避免问题,看看没有这些模板方法的日子里,世界是多么糟糕阿
14 楼 抛出异常的爱 2007-05-13  
julyboxer 写道
抛出异常的爱 写道
我以前 一项目就是找不到哪里的数据库连接没断开,加了8G内存了事。。。。


你这确实是高手了。。。
让你两天时间内找到问题后上线。。。。你给我一个好办法?

救火队中的奇怪方法多了去了
PS:还是找到没关连接的代码了
有一新手拷贝别人代码时没拷finally的内容。。。我吐血啊吐血。。。
13 楼 julyboxer 2007-05-12  
抛出异常的爱 写道
我以前 一项目就是找不到哪里的数据库连接没断开,加了8G内存了事。。。。


你这确实是高手了。。。
12 楼 xly_971223 2007-05-12  
抛出异常的爱 写道
我以前 一项目就是找不到哪里的数据库连接没断开,加了8G内存了事。。。。

太有才了
11 楼 jameswei 2007-05-12  
估计是连接池数量大小的问题吧.
10 楼 抛出异常的爱 2007-05-11  
我以前 一项目就是找不到哪里的数据库连接没断开,加了8G内存了事。。。。
9 楼 hpq852 2007-05-11  
以前用dbcp 出现过类似的问题, 感觉Connection没有释放. 后来用C3P0问题解决
8 楼 guanfish 2007-05-11  
真是太有人才了,虽然尚未验证正确与否,但是觉得大家说得很有道理。顺便学习一下这几个连接池的参数
maxActive="100"  <!--最大活跃连接数,这里取值为100,表示同时最多有100个数据库连接。设为0表示无限制。-->

  maxIdle="30" <!--最大的空闲连接数,这里取值为30,表示即使没有数据库连接时依然可以保持30个空闲的连接,而不被清除,随时处于待命状态。设为0表示无限制。-->

  maxWait="10000" <!--最大建立连接等待时间。如果超过此时间将接到异常。这里设置为10000,表示10秒后超时。设为-1表示无限制,直到超时为止。-->

   如果最大数据库活跃连接数过大,可想而知,内存占用量是非常惊人的!如果空闲连接数过大,则资源利用率低,连接池长期未释放,可导致连接池结点异常。所以选好maxActive和maxIdle是连接池性能的关键因素,当然这取决于服务器环境。

7 楼 jimmy.shine 2007-05-11  
连接池最大连接数太小,且每次取得连接的数量也太少了。这不适合于企业级的应用。
6 楼 林秋枫 2007-05-11  
肯定是连接池最大连接数太小了。
5 楼 hgq0011 2007-05-11  
“<property name="maxIdle">
<value>2</value>
</property>

<property name="maxActive">
<value>5</value>
”是不是数量太少?加大点试试?
4 楼 guanfish 2007-05-11  
数据源的配置如下
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value>com.ibm.db2.jcc.DB2Driver</value>

</property>

<property name="url">
    <value>*****</value>
</property>
<property name="username">
<value>****</value>
</property>
<property name="password">
<value>****</value>
</property>
<property name="initialSize">
<value>5</value>
</property>
<property name="maxIdle">
<value>2</value>
</property>
<property name="minIdle">
<value>1</value>
</property>
<property name="maxActive">
<value>5</value>
</property>
<property name="removeAbandoned">
<value>true</value>
</property>
<property name="removeAbandonedTimeout">
<value>1800</value>
</property>
<property name="maxWait">
<value>2000</value>
</property>
</bean>
3 楼 抛出异常的爱 2007-05-11  
没关闭连接?关闭事务?
2 楼 jimmy.shine 2007-05-10  
以我的经验,应当是连接池的配置问题。可以将你的连接配置拿出来看一下。
1 楼 hgq0011 2007-05-10  
能把具体的错误信息贴出来吗?

试试用webshpere来配置数据源。

相关推荐

    libc.lib,解决链接错误cannot open file 'LIBC.lib'

    从vc6.0升级到vs新版本时,连接出现link:cannot open file 'LIBC.lib'。则添加本libc库,即可通过链接

    cuda报错 OSError: libcudart.so.10.0: cannot open shared object file: No such file

    有时候会碰到cuda报错,OSError: libcudart.so.10.0: cannot open shared object file: No such file 原因是cuda动态链接库没有链接上。 解决方法如下: cuda10.0: sudo ldconfig /usr/local/cuda-10.0/lib64 cuda...

    vs2010中Cannot find or open the PDB file简单总结

    Cannot find or open the PDB file in VS2010 ...Cannot find or open the PDB file是一个常见的错误信息,可以通过设置系统环境变量、更改项目属性、添加语句、使用断点、调整VS2010设置等方法解决。

    SSH报cannot establish connection,怎么办.答解决方法.把xx改成yes即可解决

    当遇到"SSH报cannot establish connection"的问题时,这通常意味着客户端无法与SSH服务器建立安全连接。这个问题可能是由多种原因引起的,包括配置错误、防火墙阻止、密钥对不匹配等。针对这个问题,我们可以采取...

    fatal error C1083: Cannot open include file:config-win.h修复工具.rar

    网友分享的能够解决fatal error C1083: Cannot open include file: 'config-win.h': No such file or directory问题的程序。MySQL-python-1.2.3.win32-py2.7.exe-32位MySQL-python-1.2.3.win-amd64-py...

    clipbrd 剪切板

    剪切板是Windows操作系统中的一个核心功能,它允许用户在不同的程序之间共享数据,如文本、图像和其他可复制的对象。`clipbrd.exe` 文件是Windows剪贴板查看器的可执行程序,位于系统的`C:\Windows\System32`目录下...

    vue项目启动出现cannot GET /服务错误的解决方法

    上午做了项目,中午吃完饭后回来再跑一次服务器, 出现 Cannot GET/: 控制台中并没有报错;npm run dev命令行窗口也没有报错。 原因 在网上查了一堆,发现这个问题还挺多呢,而且各个回答的解决方式都竟然有...

    Cannot open include file: 'streambuf':

    有时候非安装版的VC++6.0会出现'streambuf': No such file or directory的问题 原因在于你的库函数少了,下载这个文件将其放到 (你的安装目录)\VC98\INCLUDE,比如某人...将那三个文件放到上面指定目录后就不会出错了

    cannot open page 7 3.webarchive

    cannot open page 7 3.webarchive

    freeswitch启动失败

    Cannot open pid file /usr/local/freeswitch/run/freeswitch.pid

    包含"stm32f10x_lib.h":等FWLib.rar

    ..\SYSTEM\sys\sys.h(3): error: #5: cannot open source input file "stm32f10x_lib.h": No such file or directory compiling delay.c... ..\SYSTEM\delay\delay.c(1): error: #5: cannot open source input file ...

    解决FileZilla_Server:425 Can’t open data connection 问题详解

    在服务器上安装FileZilla Server时出现425 Can’t open data connection的问题,客户端读取目录列表失败 服务器是腾讯云的,具体解决办法如下 这个问题主要是由于服务器所在网络环境的问题,解决这个问题很简单: 1...

    在使用VSCode编写C程序时,出现错误:cannot open source file “stdio.h”

    将鼠标放上去发现错误,然后将鼠标移开后发现有一个黄色的灯,将鼠标在移到小黄灯上,然后点击第一个EditincludePath setting。 点击输入框的右侧下拉选,选中末尾是gcc.exe。然后重新运行测试程序。   作者:胸...

    libcusparse.so.11

    OSError: libcusparse.so.11: cannot open shared object file: No such file or directory 搜索全网,也没找到解决方案。最快解决方案如下: 1、在 /home/user/anaconda3/lib/ 中放入缺少的 libcusparse.so.11 文件...

    springcloudconfig-git

    这个“springcloudconfig-git”项目显然整合了这两个功能,为分布式系统的配置提供了一个基于 Git 的解决方案,并且包含了注册中心,可能是 Spring Cloud Eureka,用于服务发现。 1. **Spring Cloud Config**: - ...

    VC下配置opengl的开发运行环境

    在Windows环境下,特别是使用Visual C++ 6.0(简称VC++ 6.0)这样的经典IDE时,配置OpenGL的开发运行环境是一项基础且重要的任务。OpenGL是一个强大的图形库,广泛应用于游戏开发、科学可视化等领域。然而,由于VC++...

    LINK : fatal error LNK1104: cannot open file "mfc42u.lib"-附件资源

    LINK : fatal error LNK1104: cannot open file "mfc42u.lib"-附件资源

    FlexBuilder运行项目报Flex Builder cannot locate the required version of Flash Player

    标题 "FlexBuilder运行项目报Flex Builder cannot locate the required version of Flash Player" 描述了一个常见的问题,即在使用FlexBuilder开发Flex应用程序时,由于找不到合适的Flash Player版本,导致项目无法...

    解决mysql failed to open table mysql.event

    在MySQL数据库系统中,"failed to open table mysql.event" 是一个常见的错误,通常表示数据库无法正确访问或加载`mysql.event`表。`mysql.event`是MySQL服务器用来存储定时任务(也称为事件Scheduler)的地方,当这...

Global site tag (gtag.js) - Google Analytics