Spring接続プール構成
実際のアプリケーション開発において、特にWEBアプリケーションシステムにおいて、JSP、サーブレットまたはEJBがJDBCを使用してデータベース内のデータに直接アクセスする場合、データアクセス要求のたびにデータベース接続の確立、データベースのオープン、データのアクセス、データベース接続のクローズなどのステップを経なければならないが、データベースに接続して開くことはリソースを消費し、時間がかかる仕事である.このようなデータベース・オペレーションが頻繁に発生すると、システムのパフォーマンスが急激に低下し、システムがクラッシュすることもあります.データベース接続プール・テクノロジーは、この問題を解決するために最も一般的な方法であり、多くのアプリケーション・サーバ(例えば、Weblogic、WebSphere、JBoss)では、基本的にこのテクノロジーを提供しており、自分でプログラミングする必要はありませんが、このテクノロジーを深く理解する必要があります.
データベース接続プール技術の考え方は非常に簡単で、データベース接続をオブジェクトとして1つのVectorオブジェクトに格納し、データベース接続が確立されると、異なるデータベースアクセス要求がこれらの接続を共有することができ、これにより、これらの確立されたデータベース接続を多重化することで、上記の欠点を克服し、システムリソースと時間を極めて節約することができる.
データベース接続プールの主な操作は次のとおりです.
(1)作成
データベース接続プールオブジェクト(サーバ起動).
(2)事前に指定したパラメータに従って、初期数のデータベース接続(すなわち、空き接続数)を作成する.
(3)1つのデータベースアクセス要求に対して,直接接続プールから1つの接続を得る.場合
データベース接続プール・オブジェクトに空き接続がなく、接続数が最大(すなわち、最大アクティブ接続数)に達していないため、新しいデータベース接続が作成されます.
(4)データベースへのアクセス.
(5)データベースをシャットダウンし、すべてのデータベース接続を解放する(このときのデータベース接続をシャットダウンするのは、実際にシャットダウンするのではなく、アイドルキューに入れます.実際のアイドル接続数が最初のアイドル接続数より大きい場合は、接続を解放します).
(6)解放
≪データベース接続プール・オブジェクト|Database Connection Pool Objects|Emdb≫:サーバーの停止、メンテナンス中に、データベース接続プール・オブジェクトを解放し、すべての接続を解放します.
Spring
サードパーティ依存パケットには、2つのデータソースの実装クラスパケットが含まれています.
Apache
の
DBCP
二つ目は
C3P0
.可以在
Spring
コンフィギュレーション・ファイルでは、両方のコンフィギュレーション・データ・ソースを使用します.
Spring接続プールの別の構成
BoneCP BoneCPは、高速でオープンソースのデータベース接続プールです.データ接続を管理して、アプリケーションがデータベースに迅速にアクセスできるようにします.C 3 P 0/DBCP接続プールより速い.
データベース接続プール技術の考え方は非常に簡単で、データベース接続をオブジェクトとして1つのVectorオブジェクトに格納し、データベース接続が確立されると、異なるデータベースアクセス要求がこれらの接続を共有することができ、これにより、これらの確立されたデータベース接続を多重化することで、上記の欠点を克服し、システムリソースと時間を極めて節約することができる.
データベース接続プールの主な操作は次のとおりです.
(1)作成
データベース接続プールオブジェクト(サーバ起動).
(2)事前に指定したパラメータに従って、初期数のデータベース接続(すなわち、空き接続数)を作成する.
(3)1つのデータベースアクセス要求に対して,直接接続プールから1つの接続を得る.場合
データベース接続プール・オブジェクトに空き接続がなく、接続数が最大(すなわち、最大アクティブ接続数)に達していないため、新しいデータベース接続が作成されます.
(4)データベースへのアクセス.
(5)データベースをシャットダウンし、すべてのデータベース接続を解放する(このときのデータベース接続をシャットダウンするのは、実際にシャットダウンするのではなく、アイドルキューに入れます.実際のアイドル接続数が最初のアイドル接続数より大きい場合は、接続を解放します).
(6)解放
≪データベース接続プール・オブジェクト|Database Connection Pool Objects|Emdb≫:サーバーの停止、メンテナンス中に、データベース接続プール・オブジェクトを解放し、すべての接続を解放します.
Spring
サードパーティ依存パケットには、2つのデータソースの実装クラスパケットが含まれています.
Apache
の
DBCP
二つ目は
C3P0
.可以在
Spring
コンフィギュレーション・ファイルでは、両方のコンフィギュレーション・データ・ソースを使用します.
<!-- DBCP-->
<!--
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
-->
<!-- C3P0-->
<bean id="dataSource" destroy-method="close" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="minPoolSize"><value>1</value></property>
<property name="maxPoolSize"><value>20</value></property>
<property name="maxIdleTime"><value>1800</value></property>
<property name="acquireIncrement"><value>2</value></property>
<property name="maxStatements"><value>0</value></property>
<property name="initialPoolSize"><value>2</value></property>
<property name="idleConnectionTestPeriod"><value>1800</value></property>
<property name="acquireRetryAttempts"><value>30</value></property>
<property name="breakAfterAcquireFailure"><value>true</value></property>
<property name="testConnectionOnCheckout"><value>false</value></property>
</bean>
Spring接続プールの別の構成
BoneCP BoneCPは、高速でオープンソースのデータベース接続プールです.データ接続を管理して、アプリケーションがデータベースに迅速にアクセスできるようにします.C 3 P 0/DBCP接続プールより速い.
<!-- boneCP-->
<bean id="dataSource" destroy-method="close" class="com.jolbox.bonecp.BoneCPDataSource">
<property name="driverClass" value="${jdbc.driverClassName}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<!-- -->
<property name="idleConnectionTestPeriod" value="60" />
<!-- -->
<property name="idleMaxAge" value="240" />
<!-- -->
<property name="maxConnectionsPerPartition" value="30" />
<!-- -->
<property name="minConnectionsPerPartition" value="10" />
<!-- , 2, 1, 3-4, -->
<property name="partitionCount" value="3" />
<!-- , :2 -->
<property name="acquireIncrement" value="5" />
<!-- -->
<property name="poolAvailabilityThreshold" value="10"></property>
<!-- -->
<property name="connectionTimeout" value="3000"></property>
</bean>
<!-- Proxool -->
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
<property name="driver" value="${jdbc.driverClassName}"/>
<property name="driverUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!-- housekeeper . . . . 5 . -->
<property name="maximumActiveTime" value="60000"/>
<!-- . . ( ). . 3 2 , prototype-count 4, 2 . minimum-connection-count . minimum-connection-count .prototype-count spare connections . -->
<property name="prototypeCount" value="0"/>
<!-- . -->
<property name="maximumConnectionCount" value="50"/>
<!-- -->
<property name="minimumConnectionCount" value="2"/>
<!-- -->
<property name="simultaneousBuildThrottle" value="50"/>
<!-- -->
<property name="houseKeepingTestSql" value="select CURRENT_DATE"/>
</bean>