получение исключений тайм-аута запроса из приложения asp.net с использованием клиента Oracle с несколькими схемами - PullRequest
0 голосов
/ 22 января 2010

У нас есть приложение asp.net, которое использует клиент Oracle. В строке подключения мы указываем 3 основных атрибута: источник данных, идентификатор пользователя и пароль. Мы используем пул соединений. Наши данные находятся в 2 разных схемах Oracle. Большинство запросов относятся к данным от Schema1. Тайм-ауты поступают от вызовов для данных из схемы2

Возможно ли, что соединения неявно связаны со схемой?

Это многое бы объяснило. Поскольку большинство вызовов относятся к данным из схемы1, пул заполняется соединениями, которые подходят только для схемы1. Затем поступает вызов данных из schema2, и ни одно из соединений в пуле не может удовлетворить запрос, и мы получаем тайм-аут.

Спасибо за любую помощь, - Грег

1 Ответ

0 голосов
/ 22 января 2010

Соединение Oracle всегда привязано к схеме, по умолчанию используется собственная схема пользователя. Если вы используете две разные строки подключения, у вас уже должно быть два отдельных пула, поэтому я подозреваю, что, возможно, вы достигли максимального количества сеансов для всей базы данных.

Каков ваш параметр экземпляра "SESSIONS". Сравните это с настройкой «Максимальный размер пула» в соединении. По умолчанию я думаю, что 100 для 11g, но вы не упомянули, какая версия. Возможно, вам придется увеличить или увеличить ПРОЦЕССЫ или уменьшить максимальный размер пула.

Вам следует запросить V $ SESSION в то время, когда вы видите эти тайм-ауты, чтобы узнать, сколько реальных сессий Oracle.

выберите имя пользователя, количество (1) из группы v $ session по имени пользователя;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...