Установка и обновление свойств (OracleConnectionPoolDataSource) пула соединения для лучшей производительности

  1. не дают никому Сборку URL
  2. что-то столь бесполезное, что, если правило 1 повреждается, никто не приедет так или иначе.
7
задан prof401 23 September 2009 в 20:20
поделиться

3 ответа

Руководство по производительности Oracle Application Server для 10g Release 3 (10.1.3.1) предоставляет исчерпывающую информацию о , как оптимизировать параметры пула соединений . 12108] Эта информация полезна почти для всех сценариев, в которых приложение использует пул соединений для управления подключениями к базе данных Oracle, независимо от используемого сервера приложений.

Например, всегда рекомендуется устанавливать значение для минимальный размер пула. Что касается максимального размера пула, значение не должно быть явно высоким, так как это может загрузить слушателя, особенно если приложение имеет тенденцию не закрывать соединения, что приводит к утечке.

Предпочтительно установить разумное значение для кеша операторов, поскольку это позволяет подготовить операторы кэшируются, что позволяет повысить производительность.

Таймауты также следует выбирать с учетом среды. Например, тайм-аут ожидания соединения не должен быть равен нулю в большинстве случаев, поскольку это может вызвать исключения SQLExceptions, когда физические соединения не могут быть инициализированы в пуле в течение достаточного интервала. Таймаут бездействия должен быть достаточно большим, чтобы соединения удалялись только после достаточного времени бездействия; слишком низкое значение приведет к слишком частому созданию и отключению физических соединений.

РЕДАКТИРОВАТЬ: Рекомендации, приведенные в Руководстве по производительности, относятся к классу oracle.jdbc.pool.OracleDataSource, который сервер приложений Oracle 10g использует для управляемых источников данных в базе данных Oracle. Большая часть его непременно будет перенесена в OracleConnectionPoolDataSource.

6
ответ дан 6 December 2019 в 19:39
поделиться

Рассматривали ли вы возможность использования нового Oracle UCP ? Цитата из списка функций 11g (выделено мной):

1.4.1.29 Универсальный пул подключений (UCP) для JDBC

Универсальный пул подключений для JDBC заменяет неявный кэш подключений и предоставляет следующие функции:

  • Маркировка соединений, сбор соединений, ведение журналов и статистика
  • Производительность и улучшения стабилизации
  • Улучшенная диагностика и статистика или показатели

UCP для JDBC предоставляет расширенные функции пула соединений, улучшенную производительность и лучшую возможность диагностики проблемы с подключением.

5
ответ дан 6 December 2019 в 19:39
поделиться

Мой первый совет: Профиль.

Мой второй совет: Профиль.

Что замедляет работу вашего приложения, вызовы каких методов вызывают снижение производительности вашего приложения?

Вы постоянно ждете о создании новых связей? Затем установите MinLimit выше 0, то же самое с 'initial-limit', чтобы у вас было несколько доступных для запуска. Если вы хотите, чтобы ваш MaxLimit был бесконечным, установите для него значение «0», значение 0 означает отсутствие ограничений.

Создаете ли вы новые подключения, когда действительно вам следует использовать существующее, но неактивное подключение? Установите для InactivityTimeout значение, отличное от 0. То же самое и для AbandonedConnectionTimeout.

Обратите внимание, что первое, с чем я бы повозился, это 'initial-limit' -

От Oracle по поводу initial-limit

Это устанавливает размер связи кеш, когда кеш изначально создан или повторно инициализирован. Когда это свойство установлено на значение больше чем 0, то многие соединения предварительно созданы и готовы к использованию. Это свойство обычно используется для сократить время "разгона" при заливке кэш до оптимального размера.

2
ответ дан 6 December 2019 в 19:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: