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設定データソース
² Spring+Hibernate設定データソース
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>