Oracle Профиль БД и пул соединений / Кэширование - PullRequest
0 голосов
/ 29 февраля 2020

Я просто взял на себя проект и заметил, что они используют профиль БД как таковой для учетных записей служб, используемых для кэширования соединений

ALTER PROFILE APP_PROF LIMIT 
    SESSIONS_PER_USER          100 
    CONNECT_TIME               640 
    IDLE_TIME                  15
   ...

Я считаю, что именно поэтому мы иногда получаем устаревшие соединения, и «ORA-02399: превышено максимальное время соединения, вы выходите из системы».

Мой вопрос будет таким: Для приложений среднего уровня, где соединения кэшируются, есть ли веские причины, по которым такой профиль будет использоваться для сервисных аккаунтов с такими лимитами?

1 Ответ

0 голосов
/ 29 февраля 2020

Лично мне было бы трудно представить ситуацию, когда я хотел бы иметь учетную запись среднего уровня с набором connect_time или idle_time. Я полагаю, возможно, что у кого-то где-то есть разумная причина использовать такую ​​конфигурацию - возможно, принудительное повторное использование соединений - это наименее болезненный способ, например, быстро нанести пластырь на утечку ресурсов, пока вы пытались исправить основная проблема кода. Но это, безусловно, те настройки, на которые я бы внимательно посмотрел.

Я видел и слышал о случаях, когда кто-то хотел установить sessions_per_user для служебной учетной записи среднего уровня, в которой отношения между сервером приложений среднего уровня Администраторы и администраторы базы данных были напряжены. Обычно администраторы среднего уровня устанавливают ограничение на размер пула соединений на среднем уровне, консультируясь с командой администраторов баз данных, чтобы убедиться, что база данных может обрабатывать connection_pool_max * number_of_app_servers соединений. Если у администраторов среднего уровня есть история раскрутки новых ферм серверов приложений или увеличения количества разрешенных соединений в пуле соединений без обращения к команде администраторов баз данных, команда администраторов баз данных может захотеть установить собственное ограничение для защиты базы данных. Я бы скорее решил проблему связи, чем имел бы отдельный лимит базы данных.

...