Это более конкретно относится к службам отчетов SQL Server, однако я также рассматриваю это как типичную проблему приложения .Net.
Вот проблема. Мы используем SSRS для сообщения данных из базы данных Oracle. С первого дня наши пользователи жалуются на то, что они получают ошибки, такие как ORA-2396: превышено максимальное время простоя, ORA-01012-не зарегистрирован и т. Д.
Мы включили администраторов баз данных, разработчиков приложений, сетевого инженера, но пока мы не смогли найти лучшего объяснения этому.
Недавно, выполняя некоторые исследования, я заметил, что многие люди задокументировали одну «известную» проблему с подключением .Net к оракулу. Как они упоминают, если мы используем пул соединений, есть вероятность, что даже бесполезное соединение может быть доступно в пуле. При следующем запросе это соединение может быть использовано, и в этот момент будет выдано сообщение об ошибке. Как подтвердил наш администратор базы данных, наш экземпляр oracle настроен на разрыв соединения, если он простаивает в течение X минут.
Вот ссылки на которые есть упоминание
http://msdn.microsoft.com/en-us/library/8xx3tyca(v=VS.90).aspx
http://www.codeproject.com/KB/dotnet/ADONET_ConnectionPooling.aspx
Есть еще пара. Однако я нигде не получаю очень подтвержденного заявления о том, что да, это проблема текущих (последние версии .Net, oracle и т. Д.).
В части решения они упоминают, что мы будем использовать атрибут "Validate Connection = true" как часть строки соединения. Но если я пытаюсь использовать это, он говорит: «Ключевое слово не поддерживается - проверьте соединение». (Я также пробовал Validcon)
У меня есть следующие вопросы
1. Подтверждено, что существует проблема «грязного» чтения из пула соединений?
2. Если да, каковы решения?
3. Если нет, то что может быть причиной проблем с нашей стороны.
Если вам нужна дополнительная информация, не стесняйтесь комментировать.