Spring+Hibernate+Proxool连接池

本文介绍如何在Spring环境中配置Proxool连接池,并与Hibernate框架集成实现数据库操作。主要内容包括Proxool配置文件的设置、Spring配置文件中Hibernate与Proxool的集成方式,以及相关参数解释。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在applicationContext.xml同一级目录下新建一个proxoolconfig.xml
     内容如下

  <?xml version="1.0" encoding="UTF-8"?>
<something-else-entirely>
    <proxool>
       <alias>proxoolPool</alias>
       <!--proxool只能管理由自己产生的链接-->
       <driver-url>jdbc:microsoft:sqlserver://localhost:1433</driver-url>
       <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
       <driver-properties>
             <property name="user" value="sa"/>
             <property name="password" value="sa"/>
       </driver-properties>
       <!-- proxool自动侦查各个链接状态的毫秒数,侦查到空闲的链接就马上回收,超时的销毁 -->
       <house-keeping-sleep-time>90000</house-keeping-sleep-time>
       <!-- 当连接忙时等候的最大请求数,超过这个请求将不再接收-->
       <maximum-new-connections>20</maximum-new-connections>
       <!-- 最少保持的空闲连接数 -->
       <prototype-count>5</prototype-count>
      
<!--最大连接数 -->
       <maximum-connection-count>100</maximum-connection-count>
       <!-- 最小连接数 -->
       <minimum-connection-count>10</minimum-connection-count>
       <!-- 自动重连 -->
       <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
    </proxool>
</something-else-entirely>

 

 

2.在Application.xml中

   <?xml version="1.0" encoding="UTF-8"?>
<beans
 xmlns="
http://www.springframework.org/schema/beans"
 xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
 
 
<!--被屏蔽的这部分数据源可以不要,因为在proxool.xml中已经配置好了
  <bean id="DataSourceId"
   class="org.apache.commons.dbcp.BasicDataSource">
   <property name="driverClassName"
    value="com.microsoft.jdbc.sqlserver.SQLServerDriver">
   </property>
   <property name="url"
    value="jdbc:microsoft:sqlserver://localhost:1433">
   </property>
   <property name="username" value="sa"></property>
   <property name="password" value="sa"></property>
  </bean>
  -->
 <bean id="SessionFactoryId"
  class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
 
 <!--<property name="dataSource">
   <ref bean="DataSourceId" />
  </property>
   -->

   
   <!-- 配置连接池 开始 -->
  <property name="hibernateProperties">  
       <props>
     
    <prop key="hibernate.dialect">
     org.hibernate.dialect.SQLServerDialect
    </prop>
    <prop key="hibernate.show_sql">true</prop>
                            <prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
                            <prop key="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</prop>
                            <prop key="hibernate.proxool.xml">proxoolconf.xml</prop>

                             <!--注意下面的proxoolPool这个化名必须跟proxool.xml中的名字相同( <alias></alias>)-->
                            <prop key="hibernate.proxool.pool_alias">proxoolPool</prop>
   </props>
  </property>
   <!-- 配置连接池 结束 -->
  <property name="mappingResources">
   <list>
    <value>com/yang/dto/Users.hbm.xml</value></list>
  </property></bean>

 

参考http://yanghaiskys.iteye.com/blog/215424

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 在ASP.NET开发中,定时任务是一种常见功能,用于在固定时间间隔内执行特定操作,比如数据同步、清理缓存或发送通知等。以下是实现ASP.NET定时任务的详细步骤和关键要点: ASP.NET定时任务通常通过System.Threading.Timer或System.Timers.Timer实现,二者都能周期性触发事件。在ASP.NET中,可以利用后台线程或HttpApplication生命周期事件来启动定时器。 System.Threading.Timer:适合在独立线程上运行任务,避免阻塞主线程,适合轻量级任务。 System.Timers.Timer:在多线程环境下,它会自动管理线程,更适合服务器端复杂任务。 创建定时器对象,设置Interval属性为10000毫秒(10秒),并注册Elapsed事件。该事件会在每个时间间隔结束时触发。 在Elapsed事件中编写要执行的代码,确保代码执行效率高,避免阻塞,因为长时间运行的任务可能影响其他请求。 通过Timer.Start()启动定时器,Timer.Stop()停止定时器。在ASP.NET中,可以在Application_Start和Application_End事件中控制定时器的启动和停止,确保服务器启动时定时器开始运行,关闭时停止。 在多用户环境下,如果定时任务会修改共享状态,必须考虑线程安全问题,可以使用锁或其他同步机制来确保数据一致性。 将应用程序部署到IIS时,需设置应用程序池的回收策略,避免定时任务因应用程序回收而中断。同时,确保IIS配置支持长时间运行的请求。 为定时任务添加日志记录非常重要,可以帮助排查问题并监控任务执行情况。 定时任务过于频繁可能会影响服务器性能,进而影响其他请求的响应时间。可根据需求调整时间间隔,或
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值