BoneCPデータソース構成の詳細


BoneCPは、オープンソースのデータベース接続プールである.データ接続を管理してあげます.あなたのアプリケーションがより速くデータベースにアクセスできるようにします.
C 3 P 0/DBCP接続池より25倍速い.
プロジェクトのホームページ:http://jolbox.com/about.html
なぜBoneCP接続池の性能はこんなに高いですか?
1.BoneCPは、synchronizedキーではなく、マルチスレッドのリソースに対する争いを処理するために、java.util.co ncurrentパッケージの中のロック機構を使用しています.このカバンはJDK 1.5で始まったものです.
2.パーティション機構は、ロックを使っていますが、リソース競合の問題がありますので、BoneCPは複数の接続プールパーティションを配置し、各パーティションごとに独立して管理し、互いに影響しません.
 
接続池の性能はシステムのボトルネックではないですが、私たちは単に接続池という観点からBoneCPを見るだけで、私たちが学ぶべきです.
 
²     JDBC接続はデータソースになります.
//ロードthe DB driver
Class.forName(「org.hsqldb.jdbcDriver」)     
 
//create a new datasource oject
BoneCPDataSource ds=new BoneCPDataSource(); 
 
//set the JDBC url
ds.setJdbcUrl("jdbc:hsqldb:mem:test")              
 
//set the username
ds.setUsername(「sa」)                        
 
//set the password
ds.setPassword(");                          
 
//(other config options here)
ds.setxxxx(…)                             
       
Connection connection
connection=ds.get Connection()            
//fetch a connection
       
…  ドsomething with the connection here…
 
//close the connection
connection.close();                          
//close the datasource pool
ds.close();                
 
²     Spring設定データソース
<!-- BoneCP configuration --> 

<bean id="mainDataSource" class="com.jolbox.bonecp.BoneCPDataSource" destroy-method="close"> 

    <property name="driverClass" value="com.mysql.jdbc.Driver" /> 

    <property name="jdbcUrl" value="jdbc:mysql://127.0.0.1/yourdb" /> 

    <property name="username" value="root"/> 

    <property name="password" value="abcdefgh"/> 

    <property name="idleConnectionTestPeriod" value="60"/> 

    <property name="idleMaxAge" value="240"/> 

    <property name="maxConnectionsPerPartition" value="30"/> 

    <property name="minConnectionsPerPartition" value="10"/> 

    <property name="partitionCount" value="3"/> 

    <property name="acquireIncrement" value="5"/> 

    <property name="statementCacheSize" value="100"/> 

    <property name="releaseHelperThreads" value="3"/> 

</bean> 

 
 
²     Spring+Hibernate設定データソース
<!-- Hibernate SessionFactory --> 

<bean id="sessionFactory" class="org.springframework.orm.hibernate.LocalSessionFactoryBean"                autowire="autodetect"> 

<property name="hibernateProperties"> 

<props> 

<prop key="hibernate.connection.provider_class">com.jolbox.bonecp.provider.BoneCPConnectionProvider </prop> 

<prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop> 

<prop key="hibernate.connection.url">jdbc:mysql://127.0.0.1/yourdb</prop> 

<prop key="hibernate.connection.username">root</prop> 

<prop key="hibernate.connection.password">abcdefgh</prop> 

<prop key="bonecp.idleMaxAge">240</prop> 

<prop key="bonecp.idleConnectionTestPeriod">60</prop> 

<prop key="bonecp.partitionCount">3</prop> 

<prop key="bonecp.acquireIncrement">10</prop> 

<prop key="bonecp.maxConnectionsPerPartition">60</prop> 

<prop key="bonecp.minConnectionsPerPartition">20</prop> 

<prop key="bonecp.preparedStatementCacheSize">50</prop> 

<prop key="bonecp.statementsCachedPerConnection">30</prop> 

<prop key="bonecp.releaseHelperThreads">3</prop> 

</props> 

</property> 

</bean>