数据库连接池爆满异常(顶者送分)

javadaydayup 2008-12-23 11:16:11
当我多次刷新页面,或者在页面间来回跳转个几次,(也就是多次访问数据库了),就出现这异常,mysql数据库

exception
javax.servlet.ServletException: org.hibernate.exception.GenericJDBCException: Cannot open connection
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)

root cause
java.sql.SQLException: Couldn't get connection because we are at maximum connection count (10/10) and there are none available
org.logicalcobwebs.proxool.Prototyper.quickRefuse(Prototyper.java:309)
org.logicalcobwebs.proxool.ConnectionPool.getConnection(ConnectionPool.java:158)
org.logicalcobwebs.proxool.ProxoolDataSource.getConnection(ProxoolDataSource.java:97)
org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:82)

说已经超过最大连接数10个,可是很奇怪我同样代码在家都OK,在公司怎么就出现这异常,(在公司数据库是连的一台服务器192.168.1.229)
因为spring 管理的那个sessionFactory,我是直接自己写的BaseDAO,被用于其他的DAO继承,来获取连接,

以下是我的applicationContext.xml,红色部分是我的BaseDao,我没有配置事务,老大是在服务层配置的事务,我是在DAO层操作,不一定得配置事务才行啊
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver" value="${proxool.driver}" />
<property name="driverUrl" value="${proxool.url}" />
<property name="user" value="${proxool.username}" />
<property name="password" value="${proxool.password}" />
<property name="alias" value="${proxool.alias}" />
<property name="houseKeepingSleepTime" value="${proxool.houseKeepingSleepTime}" />
<property name="prototypeCount" value="${proxool.prototypeCount}" />
<property name="maximumConnectionCount" value="${proxool.maximumConnectionCount}" />
<property name="minimumConnectionCount" value="${proxool.minimumConnectionCount}" />
<property name="trace" value="${proxool.trace}" />
<property name="verbose" value="${proxool.verbose}" />
</bean>


<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
<!--Hibernate SessionFatory-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>com/goodstart/core/security/model/hbm/Resource.hbm.xml</value>
<value>com/goodstart/core/security/model/hbm/Role.hbm.xml</value>
<value>com/goodstart/core/security/model/hbm/User.hbm.xml</value>
<value>com/goodstart/core/security/model/hbm/Department.hbm.xml</value>

<value>com/goodstart/oa/casemanager/vo/Casetype.hbm.xml</value>
<value>com/goodstart/oa/casemanager/vo/Tcase.hbm.xml</value>
<value>com/goodstart/oa/casemanager/vo/CaseAttach.hbm.xml</value>
<value>com/goodstart/oa/casemanager/vo/CaseDpm.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">${proxool.dialect}</prop>
<prop key="hibernate.show_sql">${proxool.show_sql}</prop>
<prop key="hibernate.cache.use_query_cache">${proxool.cache.use_query_cache}</prop>
<prop key="hibernate.cache.provider_class">${proxool.cache.provider_class}</prop>
<!--
<prop key="hibernate.hbm2ddl.auto">update</prop>
-->
</props>
</property>
</bean>
<!-- BaseDAO -->
<bean id="baseDAO" class="com.goodstart.oa.casemanager.factory.BaseDAO" abstract="true">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>

<!--Hibernate TransactionManager-->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<!--Base TransactionProxyed Service Bean-->
<bean id="baseTxService" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
<property name="transactionManager" ref="transactionManager" />
<property name="proxyTargetClass" value="true" />

<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="load*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="save*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="remove*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

<!-- EhCache Manager -->
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
<property name="configLocation">
<value>classpath:ehcache.xml</value>
</property>
</bean>
<import resource="classpath:com/goodstart/admin/applicationContext-ext.xml" />
<import resource="classpath:com/goodstart/core/security/applicationContext-security.xml" />
<import resource="classpath:com/goodstart/oa/casemanager/applicationContext-casemanager.xml"/>
</beans>

由于内容过长,接下条
...全文
1951 66 打赏 收藏 转发到动态 举报
写回复
用AI写文章
66 条回复
切换为时间正序
请发表友善的回复…
发表回复
渔翁2012 2012-10-26
  • 打赏
  • 举报
回复
我也遇到这问题了,纳闷,不知道怎么解决,楼主你是改了什么地方啊,配置文件吗,还是哪里,求救。。
追影三少 2011-10-21
  • 打赏
  • 举报
回复
我的问题也解决了,配置文件里把 <maximum-connection-count>10</maximum-connection-count>
改成100就可以了 <maximum-connection-count>100</maximum-connection-count> 呵呵
追影三少 2011-10-21
  • 打赏
  • 举报
回复
同样的问题,不过;楼主,能不能说的具体点,如果不用模板是不是不会出现这样的问题,也就是两个不能混用!
mukada 2008-12-31
  • 打赏
  • 举报
回复
哇!顶
cw550284 2008-12-31
  • 打赏
  • 举报
回复
ding
yanbeifei168 2008-12-29
  • 打赏
  • 举报
回复
帮你顶
wm920 2008-12-29
  • 打赏
  • 举报
回复


这样的问题论坛中,天天都有人问
javadaydayup 2008-12-29
  • 打赏
  • 举报
回复
哦,忘记说了,上面的转型就是说我全改用模板了
javadaydayup 2008-12-29
  • 打赏
  • 举报
回复
呵呵,谢谢大家过来捧场哦!
问题解决了,不过解决问题的方式还是属于“转型”了

之前因为这个系统里面,那些session采用spring 管理,而界于我对hibernate和spring都不够了解,所以暂时没想用HibernateDaoSupport 模板,也就没有 getHibernateTemplate(),而是createQuery()之类的操作,可是那系统中有些部分的代码是别人用模板,其实两个单独用不会有问题的,正如上面所说,我单独用那些session,采用手动创建和关闭session没有一点问题的(在家都试过了),可能是两者合用造成的吧!

过两天散分啊!希望有人再来把楼盖高点!哈哈
goodmrning 2008-12-28
  • 打赏
  • 举报
回复
mark!
jhr924 2008-12-28
  • 打赏
  • 举报
回复
帮顶,刚学连接池,还不会解决楼主的问题
chinaboy2005 2008-12-28
  • 打赏
  • 举报
回复
SF
yanjie_gao 2008-12-28
  • 打赏
  • 举报
回复
likgui 2008-12-28
  • 打赏
  • 举报
回复
既然用spring管理事务,不用getHibernateTemplate()?
nicholasmars 2008-12-27
  • 打赏
  • 举报
回复
up
software51 2008-12-27
  • 打赏
  • 举报
回复
幫你頂!
DengXingJie 2008-12-27
  • 打赏
  • 举报
回复
我可是为分而顶啊
qdj_2002 2008-12-27
  • 打赏
  • 举报
回复
顶一下!!
jinhuiyu 2008-12-26
  • 打赏
  • 举报
回复
有人提过这个mysql的bug不过他们的开发人员一直没有处理,你可以看一下, session.close()不一定真正的关闭了connection.
http://bugs.mysql.com/bug.php?id=10917
session.close()不是必需的,session.disconnect()才是真正的释放连接。
HuanxueOrSeaty 2008-12-25
  • 打赏
  • 举报
回复
帮顶吧
加载更多回复(45)
仿点点网轻博客系统 v1.2源码 国内第一款开源轻博客系统,仿点点网的HaiTian.HaiKe.NET(海客),是一款免费、开源的轻博客系统,aiTian.HaiKe.NET(海客)完全遵循 W3C 标准,具有极强的可扩展性、高性能、良好的 SEO 性能和非凡的用户体验。 HaiTian.HaiKe.NET(海客) 采用 Visual Studio 2010 开发环境开发,运行环境为 .net framework 3.5/4.0+sqlserver2008 R2,保证系统的安全和稳定性。 海客轻博客,轻松分享你的兴趣。便捷的多图发布,清新文艺的个性化模板,时尚达人的聚集地,用图片记录生活的最佳选择,随地随地与好友一起,在兴趣中寻找快乐. 海客轻博客 v1.2 日期:2012-1-27更新说明 1、忘记密码的功能,用户可以通过忘记密码找回自己的账号 2、实现了后台对前台页面的控制,方面管理员对前台页面的的管理。 3、实现了转载的功能 4、实现了热度图像的绑定 5、实现了个人昵称修改时的检测 6、初步实现音乐的在线试听 7、修改了登录界面IE7下样式错位的问题。 8、添加了注册界面中的用户注册时昵称的检测 9、修改首页中我的关注鼠标划上去浮动的问题 10、修改了视频分享中的链接不支持的问题。 11、修改图片保存数据库异常的问题 12、激活页面 按钮图片修改为:立即激活 13、JS提取到单独的文件中 14、解决首页数据加载的异常 15、实现关注的功能 日期:2011-12-15 1.调整代码错误,数据库连接池爆满 2.抓取页面地址错误,优酷视频地址无法获取问题. 主要功能: 简单调用外链,输入地址可以自动搜索原视频,音频地址 发布信息简单快捷. 易于配置,使用,管理 占用硬盘空间小,运行所需内存空间少 Theming 通过CSS支配(完全支持CSS Media Types ) 自动页面备份(执行一个备份就和单击鼠标一下一样简单) 简单的用户帐户系统 (管理员和用户以及一个内置 admin 帐户) 页面可分类和讨论 页面嵌入和部分显示 阻止恶意文件,脚本,垃圾信息 (注册时需要Captcha 验证) 多语言界面 每个页面,页面上的讨论,整个WIKI均可进行RSS 2.0 验证

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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