首先,我们有一个使用NHibernate(版本3)和Oracle 11g数据库的MVC Web应用程序。
应用程序正在运行,但是当我们在生产服务器上发布时,会出现一个奇怪的情况:
ORA-12571: TNS:packet writer failure
例外而失败。我们尝试做的第一件事是隔离问题,因此我们将应用程序发布到具有完全相同配置的另一台服务器中:
令我们惊讶的是,我们无法重现这个问题。
请有人知道发生了什么事吗?
答案 0 :(得分:1)
问题与服务器的oracle客户端的连接池有关。它似乎正在向Web应用程序提供无效连接,而在其他服务器中它不会发生。
解决方案不是很有趣,但将Validate Connection = True
放在连接字符串中解决了问题。我知道这对性能的影响,但我没有选择。
PS:使用此标志,每个连接都由连接池服务验证,然后为客户端应用程序提供。这不是很好,因为每次连接请求都会发生数据库往返。