Spec-Zone .ru
спецификации, руководства, описания, API
След: Именование Java и Интерфейс Каталога
Урок: Усовершенствованные Темы для Пользователей LDAP
Раздел: управление Соединением
Конфигурация
Домашняя страница > Именование Java и Интерфейс Каталога > Усовершенствованные Темы для Пользователей LDAP

Конфигурация

Объединение в пул соединения конфигурируется и сохраняется на Среду выполнения 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. Его состав зависит от типа аутентификации запроса, как показано в следующей таблице.

Тип аутентификации Содержание Идентификационных данных соединения
ни один
  • средства управления соединением
  • имя хоста, номер порта как определено в свойстве "java.naming.provider.url", отсылке, или URL, предоставленном начальному контексту
  • содержание следующих свойств:
    java.naming.security.protocol
    java.naming.ldap.version
    
простой
  • вся информация не перечисляется ни для одного
  • содержание следующих свойств:
    java.naming.security.principal
    java.naming.security.credentials
    
ОБЗОР-MD5
  • вся информация, перечисленная для простого
  • содержание следующих свойств:
    java.naming.security.sasl.authorizationId
    java.naming.security.sasl.realm
    javax.security.sasl.qop
    javax.security.sasl.strength
    javax.security.sasl.server.authentication
    javax.security.sasl.maxbuffer
    javax.security.sasl.policy.noplaintext
    javax.security.sasl.policy.noactive
    javax.security.sasl.policy.nodictionary
    javax.security.sasl.policy.noanonymous
    javax.security.sasl.policy.forward
    javax.security.sasl.policy.credentials
    

Размеры пула

Провайдер 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 автоматически закроет и удалит объединенные в пул соединения, которые были неактивны для больше чем установленный период.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Объединение в пул
Следующая страница: Часто Задаваемые Вопросы