Главная » Spring » Использование пулов соединений Spring

0

Если не удалось получить источник данных из JNDI, следующим наилучшим выходом является настройка пулов соединений непо- средственно в Spring. Хотя фреймворк Spring не предоставляет соб- ственного пула, подходящая реализация имеется в проекте Jakarta Commons Database Connection Pooling (DBCP) (http://jakarta. apache.org/commons/dbcp).

DBCP включает несколько источников данных, предоставляющих пулы соединений, но обычно используется класс BasicDataSource, пото- му что он прост в настройке и напоминает класс DriverManagerDataSource в Spring (о котором мы будем рассказывать далее).

Для приложения Spitter компонент типа BasicDataSource настраи- вается следующим образом:

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName" value="org.hsqldb.jdbcDriver" />

<property  name="url"

value="jdbc:hsqldb:hsql://localhost/spitter/spitter"   />

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

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

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

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

</bean>

Первые четыре свойства – это начальные настройки BasicDataSource. Свойство driverClassName определяет полное имя класса драйвера JDBC. Здесь выполняются настройки драйвера JDBC для базы дан- ных Hypersonic. Свойство url определяет полный JDBC URL базы данных. Наконец, свойства username и password определяют параметры аутентификации при подключении к базе данных.

Эти четыре основных свойства определяют сведения о подклю- чении для BasicDataSource. Кроме того, некоторые свойства могут быть использованы для настройки самого пула источников данных. В табл. 6.4 перечислены некоторые из наиболее полезных свойств конфигурации пула для BasicDataSource.

Для наших целей мы настроили пул с начальной емкостью в пять соединений. Если будет необходимо больше одновременных соеди- нений, BasicDataSource будет добавлять их вплоть до установленного максимума в 10 активных соединений.

Таблица 6.4. Свойства конфигурации пула BasicDataSource

Свойство конфигурации пула

Назначение

initialSize

Начальное число соединений при создании пула

maxActive

Максимально допустимое число одновременно открытых активных соединений. Значение 0 соответствует неограниченному числу соединений

maxIdle

Максимально допустимое число простаивающих соединений, которые не будут закрыты. Значение 0 соответствует неограниченному числу соединений

maxOpenPreparedStatements

Максимально допустимое количество скомпилиро- ванных запросов, которые могут быть помещены

в пул запросов одновременно. Значение 0 соответствует неограниченному числу запросов

maxWait

Время ожидания пулом возврата соединения в пул (при отсутствии свободных соединений) до воз- буждения исключения. Значение –1 соответствует бесконечному ожиданию

minEvictableIdleTimeMillis

Максимальное время простоя соединения, прежде чем оно может быть удалено из пула

minIdle

Минимальное число простаивающих соединений, которые могут оставаться в пуле без создания новых соединений

poolPreparedStatements

Признак поддержки пула скомпилированных запросов (логическое значение)

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии