Spec-Zone .ru
спецификации, руководства, описания, API
|
Объединение в пул соединения конфигурируется и сохраняется на Среду выполнения Java. Соединения не совместно используются через различные времена выполнения. Чтобы использовать объединение в пул соединения, никакая конфигурация не требуется. Конфигурация необходима, только если Вы хотите настроить, как объединение в пул делается, например, управлять размером пулов и какие типы соединений объединяются в пул.
Вы конфигурируете объединение в пул соединения при использовании многих системных свойств во время запуска программы. Отметьте, что они - системные свойства, не свойства среды и что они влияют на все запросы объединения в пул соединения.
Вот пример командной строки, которая устанавливает максимальный размер пула в 20, привилегированный размер пула к 10, и неактивный тайм-аут к минуте для объединенных в пул соединений.
# java -Dcom.sun.jndi.ldap.connect.pool.maxsize=20 \ -Dcom.sun.jndi.ldap.connect.pool.prefsize=10 \ -Dcom.sun.jndi.ldap.connect.pool.timeout=60000 \ UsePool
Следующая таблица приводит системные свойства для того, чтобы сконфигурировать объединение в пул соединения. Они описываются более подробно в остальной части этого раздела.
Системное Имя Свойства | Описание | Значение по умолчанию |
---|---|---|
com.sun.jndi.ldap.connect.pool.authentication | Список разделенных пробелом типов аутентификации соединений, которые могут быть объединены в пул. Допустимые типы не "ни один", "простой", и "ОБЗОР-MD5". | "none simple" |
com.sun.jndi.ldap.connect.pool.debug | Строка, которая указывает на уровень вывода отладки, чтобы произвести. Допустимыми значениями является "fine" (создание соединения трассировки и удаление) и "все" (вся отладочная информация). | |
com.sun.jndi.ldap.connect.pool.initsize | Строковое представление целого числа, которое представляет число соединений идентификационные данные для каждого подключения, чтобы создать, первоначально создавая соединение для идентификационных данных. | 1 |
com.sun.jndi.ldap.connect.pool.maxsize | Строковое представление целого числа, которое представляет максимальное количество соединений идентификационные данные для каждого подключения, которые могут сохраняться одновременно. | никакой максимальный размер |
com.sun.jndi.ldap.connect.pool.prefsize | Строковое представление целого числа, которое представляет привилегированное число соединений идентификационные данные для каждого подключения, которые должны сохраняться одновременно. | никакой привилегированный размер |
com.sun.jndi.ldap.connect.pool.protocol | Список разделенных пробелом типов протокола соединений, которые могут быть объединены в пул. Допустимые типы "просты" и "ssl". | "plain" |
com.sun.jndi.ldap.connect.pool.timeout | Строковое представление целого числа, которое представляет число миллисекунд, которыми неактивное соединение может остаться в пуле, не будучи закрытым и удаленный из пула. | никакой тайм-аут |
Когда Вы запрашиваете это a Context
объединение в пул соединения использования экземпляра при использовании "com.sun.jndi.ldap.connect.pool"
свойство среды, соединение, которое используется, могло бы или не могло бы быть объединено в пул. Правило значения по умолчанию состоит в том, что плоскости (не-SSL) соединения, которые используют простой или никакая аутентификация, позволяют быть объединенной в пул. Можно изменить это значение по умолчанию, чтобы включать соединения SSL и тип аутентификации ОБЗОРА-MD5 при использовании системных свойств. Чтобы позволить и плоскости и соединениям SSL, которые будет объединяться в пул, устанавливает системное свойство "com.sun.jndi.ldap.connect.pool.protocol" в строку "plain ssl". Чтобы позволить соединения анонимных (ни один), простой и типы аутентификации ОБЗОРА-MD5, которые будут объединены в пул, не установил системное свойство com.sun.jndi.ldap.connect.pool.authentication в строку "none simple DIGEST-MD5".
Есть несколько свойств среды, которые автоматически дисквалифицируют экземпляр Context от использования объединенного в пул соединения. Экземпляр Context не может использовать объединенное в пул соединение, если у него есть свой набор свойств "java.naming.ldap.factory.socket" к пользовательской фабрике сокета class, или его набор свойств "java.naming.security.sasl.callback" к пользовательскому обработчику обратного вызова class, или его набор свойств "com.sun.jndi.ldap.trace.ber", чтобы включить трассировке протокола.
Когда экземпляр Context запрашивает использовать объединенное в пул соединение, провайдер LDAP должен определить, может ли запрос быть удовлетворен существующим объединенным в пул соединением. Это делает это, присваивая идентификационные данные соединения каждому объединенному в пул соединению и проверяя, есть ли у входящего запроса те же самые идентификационные данные соединения как то из одного из его объединенных в пул соединений.
Идентификационные данные соединения являются набором параметров, требуемых создать возможно аутентифицируемое соединение LDAP. Его состав зависит от типа аутентификации запроса, как показано в следующей таблице.
Тип аутентификации | Содержание Идентификационных данных соединения |
---|---|
ни один |
|
простой |
|
ОБЗОР-MD5 |
|
Провайдер LDAP поддерживает пулы соединений; каждый пул содержит соединения (или в использовании или неактивный), у которых есть те же самые идентификационные данные соединения. Есть три размера, которые влияют на управление каждым пулом. Эти размеры являются глобальной переменной и влияют на все пулы.
Начальный размер пула является числом соединений идентификационные данные для каждого подключения, которые создает поставщик услуг LDAP, сначала создавая пул (который соответствует когда приложение первые запросы объединенное в пул соединение для тех идентификационных данных соединения). Аутентификация каждого соединения в пуле выполняется по требованию, поскольку соединение привыкает. По умолчанию начальный размер пула 1 и может быть изменен при использовании системного свойства "com.sun.jndi.ldap.connect.pool.initsize". Это обычно привыкло во время запуска приложения к главному пул с определенным числом соединений с сервером.
Максимальный размер пула является максимальным количеством соединений идентификационные данные для каждого подключения, которые могут сохраняться одновременно поставщиком услуг LDAP. И в использовании и неактивные соединения способствуют этому числу. Когда размер пула достигает этого числа, никакое новое соединение для соответствующих идентификационных данных соединения не может быть создано, пока соединение в пуле не было удалено (то есть, физическое соединение закрывается). Когда размер пула достигает максимума, и все соединения в пуле используются, запрос приложения на соединение от того пула блокируется до соединения в пуле или становится неактивным или удаляется. Максимальный размер пула 0 средств, что нет никакого максимального размера: запрос на объединенное в пул соединение будет использовать существующее объединенное в пул неактивное соединение или недавно создаваемое объединенное в пул соединение.
Привилегированный размер пула является привилегированным числом соединений идентификационные данные для каждого подключения, которые должен поддержать поставщик услуг LDAP. И в использовании и неактивные соединения способствуют этому числу. Когда приложение запрашивает использование объединенного в пул соединения, и размер пула является меньше чем привилегированный размер, провайдер LDAP будет создавать и использовать новое объединенное в пул соединение независимо от того, доступно ли неактивное соединение. Когда приложение заканчивается с объединенным в пул соединением (вызывая Context.close() на все контексты, которые совместно используют соединение), и размер пула больше чем привилегированный размер, провайдер LDAP закроет и удалит объединенное в пул соединение из пула. Привилегированный размер пула 0 средств, что нет никакого привилегированного размера: запрос на объединенное в пул соединение приведет к недавно создаваемому соединению, только если никакие неактивные не доступны.
Отметьте, что максимальный размер пула переопределяет обоих начальные и привилегированные размеры пула. Например, установка привилегированного размера пула, больше чем максимальный размер пула, эффективно устанавливает это в максимальный размер пула.
Когда приложение заканчивается с объединенным в пул соединением (вызывая Context.close() на все контексты, которые совместно используют соединение), базовое объединенное в пул соединение отмечается как неактивное, ожидая, чтобы быть снова использованным. По умолчанию неактивные соединения остаются в пуле неопределенно, пока они не собираются "мусор". Если системное свойство "com.sun.jndi.ldap.connect.pool.timeout" было установлено, провайдер LDAP автоматически закроет и удалит объединенные в пул соединения, которые были неактивны для больше чем установленный период.