免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2815 | 回复: 4
打印 上一主题 下一主题

structs+spring+hibernate WEB应用阻塞 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-21 09:33 |只看该作者 |倒序浏览
我的程序构架在structs+spring+hibernate框架下
现在出现一个棘手的问题,就是连接池,在向数据库申请新的连接的时候,应用会突然阻塞,变的很慢
用户登陆都无法进行
请各位帮我分析分析原因,谢谢了:)
这是我的spring配置文件的一部分
我申请了两个连接池,一个做日志,一个是应用用的
<!--拦截器-->
  <bean id="mySessionFactory2" class="org.springframework.orm.hibernate.LocalSessionFactoryBean">
    <property name="mappingResources">
      <list>

        <value>com/zhs/hbms/entity/LogBasechkSub.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogBasebookChk.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogBasebook.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogBaseSub.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogConAdvitem.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogConBackcash.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogConBookinfo.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogConHbinfo.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogConInvoice.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogConSpecinfo.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogConTailorStep.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogContract.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogCustomerBase.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogCustSub.hbm.xml</value>
        <value>com/zhs/hbms/entity/LogStoreBill.hbm.xml</value>
      </list>
    </property>
    <property name="dataSource">      <ref bean="myDataSource2"/>      </property>
    <property name="hibernateProperties">
      <ref bean="exampleHibernateProperties" />
    </property>
  </bean>
  <bean id="myTransactionManager2" class="org.springframework.orm.hibernate.HibernateTransactionManager">
    <property name="sessionFactory"><ref local="mySessionFactory2"/></property>
  </bean>

  <bean id="makeLogInterceptor" class="com.zhs.hbms.env.MakeLogInterceptor" singleton="true">

  </bean>
<bean id="myDataSource2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName"> <value>com.sybase.jdbc2.jdbc.SybDriver</value></property>
    <property name="url"><value>jdbc:sybase:Tds:128.129.0.204:5000/hbtest?charset=cp936</value></property>
    <property name="username"><value>sa</value></property>
    <property name="password"><value></value></property>
    <property name="maxActive"><value>100</value></property>
</bean>

<!-- Database Property -->
<bean id="exampleHibernateProperties"
class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
  <props>
   <prop
    key="hibernate.dialect">net.sf.hibernate.dialect.SybaseDialect</prop>
   <prop
    key="hibernate.query.substitutions">true 'T', false 'F'</prop>
   <prop key="hibernate.show_sql">false</prop>
   <prop key="hibernate.c3p0.minPoolSize">1</prop>
   <prop key="hibernate.c3p0.maxPoolSize">2</prop>
   <prop key="hibernate.c3p0.timeout">600</prop>
   <prop key="hibernate.c3p0.max_statement">50</prop>
   <prop
     key="hibernate.c3p0.testConnectionOnCheckout">false</prop>
  </props>
</property>
</bean>

  <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName"> <value>com.sybase.jdbc2.jdbc.SybDriver</value></property>
    <property name="url"><value>jdbc:sybase:Tds:128.129.0.204:5000/hbtest?charset=cp936</value></property>
    <property name="username"><value>sa</value></property>
    <property name="password"><value></value></property>
    <property name="maxActive"><value>100</value></property>
  </bean>

  <!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
  <bean id="myTransactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager">
    <property name="sessionFactory"><ref local="mySessionFactory"/></property>
  </bean>

论坛徽章:
0
2 [报告]
发表于 2006-03-21 09:40 |只看该作者
<prop key="hibernate.c3p0.minPoolSize">1</prop>
   <prop key="hibernate.c3p0.maxPoolSize">2</prop>

这两个参数,我开始设置的是50,150,经过测试发现没有起作用,用的还是dbcp连接池

论坛徽章:
0
3 [报告]
发表于 2006-03-21 09:47 |只看该作者
c3p0和dbcp是两个db connection pool的实现,你为什么要混着配
许多人说是c3p0更稳定,我没有比较过。

你现在是一开始就会阻塞还是过一段时间后会阻塞

论坛徽章:
0
4 [报告]
发表于 2006-03-21 10:11 |只看该作者
开始不会,运行的好好的
但是当客户连接多的时候,连接池就要申请新的连接,这个时候应用就阻塞
然后,客户就以为死机了,不停的点击登陆登陆,所以,线程越来越多,我观察到了120个busy thread 然后,过了两分钟
系统又恢复了正常,busy thread又恢复到了23

不知道什么原因,请赐教啊

论坛徽章:
0
5 [报告]
发表于 2006-03-21 15:32 |只看该作者
ding ding ding
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP