Hibernate接続プールの構成(hibernateとhibernate+spring)


1.Hibernateデフォルト接続プール
<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE hibernate-configuration ..."> 
<hibernate-configuration> 
<session-factory > 
<!—JDBC      --> 
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> 
<!--        URL--> 
<property name="connection.url">jdbc:mysql://localhost:3306/schoolproject </property> 
<!--        --> 
<property name="connection.username">root</property> 
<!—      --> 
<property name="connection.password"></property> 
<!--         --> 
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> <!--    Student      --> 
<mapping resource="com/wqbi/model/pojo/student.hbm.xml" /> </session-factory> 
</hibernate-configuration> 

2 .C 3 P 0接続構成//spring+hibernate 1.c 3 p 02をダウンロードします.パッケージ3をインポートする.c 3 p 0データベース接続プール4をSpringで構成するには、をc 3 p 0に直接変更する構成を以下のようにすればよい.
<bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"></property> 
<property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.1.3:1521:HZORA6"></property> 
<property name="user" value="hz1001"></property> 
<property name="password" value="123"></property>
<property name="maxPoolSize" value="40"></property> 
<property name="minPoolSize" value="1"></property> 
<property name="initialPoolSize" value="1"></property> 
<property name="maxIdleTime" value="20"></property> 
</bean>

以下の構成は、beanを参照するだけでよい基本構成パラメータ:initialPoolSize:Number of Connections a pool will try to acquire upon startup.Should be between minPoolSize and maxPoolSize接続プールの初期化時に取得したリンク数は、minPoolSizeとmaxPoolSizeの間のminPoolSize:Minimum number of Connections a pool will maintain at any given time.最小リンク数maxPoolSize:Maximum number of Connections a pool will maintain at any given time.最大接続数acquireIncrement:D e termines how many connections at a time c 3 p 0 will try to acquire when the pool is exhausted.現在の接続数が切れた場合、一度に取得した新しい接続数maxIdleTime:Seconds a Connection can remain pooled but unused before being discarded.Zero means idle connections never expire. 最大空き時間、単位は秒、無駄なリンクは時代遅れに回収されます
3.proxool接続プール//hibernate 1 proxoolのプロファイル、ファイル名:proxool.xml(一般的にhibernate.cfg.xmlファイルと同じディレクトリに格納されます)この例ではMYSQLデータベースを構成し、データベースの名前はschoolprojectです.
<?xml version="1.0" encoding="UTF-8"?> 
<!-- the proxool configuration can be embedded within your own application's. Anything outside the "proxool" tag is ignored. --> <something-else-entirely> 
<proxool> 
<!--        --> 
<alias>DBPool</alias> 
<!--proxool              --> 
<driver-url>jdbc:mysql://localhost:3306/schoolproject?useUnicode=true&characterEncoding=UTF8 </driver-url> 
<!—JDBC      --> 
<driver-class>com.mysql.jdbc.Driver</driver-class> 
<driver-properties> 
<property name="user" value="root"/> 
<property name="password" value=""/> 
</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-new-connections    --> 
<maximum-connection-count>100</maximum-connection-count>
<!--       --> 
<minimum-connection-count>10</minimum-connection-count> </proxool> 
</something-else-entirely> 
 
 

 //spring+hibernate

<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
 <property name="driver"><value>${driver}</value></property> 
<property name="jdbcUrl"><value>${read.jdbcUrl}</value></property>
<property name="user"><value>${read.user}</value></property>
<property name="password"><value>${read.password}</value></property>
<property name="minPoolSize"><value>10</value></property>
<property name="maxPoolSize"><value>30</value></property>
<property name="initialPoolSize"><value>10</value></property>
<property name="maxIdleTime"><value>28000</value></property>
<property name="idleConnectionTestPeriod"><value>28000</value></property>
</bean>

4.JNDI プールのデータソースは、Webサーバなどのアプリケーションサービスによって されています.Hibernateは、JNDI でこのデータソースを するだけです.アプリケーションサーバは、 プールを にJNDIバインドデータソースとして するjavaxである.jdbc.Datasourceクラスのインスタンスです.hibernateなどのHibernateファイルを するだけです.connection.Datasource=java:/comp/env/jdbc/scoolproject//JNDI hibernate.transaction.factory_class = org.hibernate.transaction.JTATransactionFactory hibernate.transaction.manager_loopup_class = org.hibernate.transaction.JBossTransactionManagerLookup hibernate.dialect=org.hibernate.dialect.MySQLDialect