Spec-Zone .ru
спецификации, руководства, описания, API
|
Во многих ситуациях, таких как веб-приложения, будет большое количество маленьких транзакций базы данных. Когда
дело обстоит так, обычно имеет смысл создавать пул соединений с базой данных, доступных для веб-запросов как
необходимый. Хотя MySQL не порождает дополнительный процесс, когда соединение делается, есть все еще небольшое
количество издержек, чтобы создать и установить соединение. Объединение в пул соединений также облегчает
проблемы, такие как сбор большого количества сокетов в TIME_WAIT
состояние.
Установка объединения в пул соединений MySQL с Spring столь же проста как изменение конфигурации источника
данных в контексте приложения. Есть много конфигураций, которые мы можем использовать. Первый пример основан на
DriverManagerDataSource
с BasicDataSource DBCP.
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${db.driver}"/> <property name="url" value="${db.jdbcurl}"/> <property name="username" value="${db.username}"/> <property name="password" value="${db.password}"/> <property name="initialSize" value="3"/></bean>
Конфигурация этих двух решений очень подобна. Различие - то, что DBCP объединит соединения в пул с базой данных
вместо того, чтобы создать новое соединение каждый раз, когда каждого требуют. Мы также установили параметры,
здесь вызванные initialSize
. Это говорит DBCP, что мы хотим три соединения в пуле,
когда это создается.
Другой способ сконфигурировать объединение в пул соединения состоит в том, чтобы сконфигурировать источник
данных в нашем сервере приложений J2EE. Используя JBoss как пример, можно установить пул соединения MySQL,
создавая вызванный файл mysql-local-ds.xml
и размещение этого в каталоге
сервера/значения по умолчанию/развертывать в JBoss. Как только у нас есть эта установка, мы можем использовать
JNDI, чтобы искать ее. С Spring этот поиск очень прост. Конфигурация источника данных похожа на это.
<jee:jndi-lookup id="dataSource" jndi-name="java:MySQL_DS"/>