我在开始使用城堡 activerecord 的同时开始使用 nhibernate,所以有时我会遇到一些混淆的问题
我想知道当以下代码运行时activerecord(或nhibernate)何时关闭连接:
Dim entity = TABLE_Y.TryFind(id)
if not entity is nothing then
'long running process here
response.redirect("...")
end if
我问这个是因为这个长时间运行的过程需要一个多小时才能完成,每当代码重定向到另一个页面时,我都会收到 ORA-03135(连接丢失联系)告诉我连接丢失,这个另一个页面有以下活动记录查询:
Dim entity = TABLE_X.FindAll(Order.Desc(...), _
Expression.Eq(...) And _
Expression.Eq(...)).FirstOrDefault
然后返回 ora-03135
所以我在想如果在长时间运行的过程之前没有关闭的来自activerecord的任何连接
这个长时间运行的进程实际上是由应用程序启动的另一个进程,它在重定向到另一个页面之前等待它结束,所以即使另一个进程使用活动记录,它也不会使用相同的连接字符串或其他任何东西
这很有趣,因为我正在一个完全不同的表上开始一个新查询,activerecord 是否试图重用一个已超时的现有连接?我尝试添加“Pooling=False”和“Validate Connection=true”但没有成功
提前致谢