读书人

ado连接oracle错误的有关问题

发布时间: 2013-04-26 16:27:53 作者: rapoo

ado连接oracle异常的问题
我的服务器的一个Service程序,用delphi7的ado连接oracle数据库,创建了一个连接池。开始查询什么的都正常。等过了一定的时间,如几个小时客户端没有请求上来,再执行请求的时候,就报“ora-03113 通信通道的文件结束”,客户之前是sql2008,一直很正常。后来客户要求更换oracle数据库,就出现这个问题了。

环境是数据库oracle11g,应用服务器Service所在的系统是win2008的64位,安装的是oracle的ado的32位驱动(因为我们的Service是32位的)

如果客户端一直请求应用服务器是没问题的。就是静默一段时间没有请求,再次发送请求的时候,应用服务器Service的数据库连接池就会报这个错误。数据库连接池当中的ado的connection是长连接,请求结束的时候,这个连接不释放,放回池中,等下次请求来的时候,直接从池中获得。

本人对oracle不熟悉,是不是需要服务器端做些什么设置? Oracle 数据库 异常 应用服务器
[解决办法]
应该是oracle设置了一定时间内不访问就会自动关闭连接。
看下下面的解决方法是否对你有用:
http://blog.itpub.net/post/41511/522895
http://blog.sina.com.cn/s/blog_53c2d4c40100h56h.html
[解决办法]
Oracle 自动关闭了,此时可以试试重新连接一下,而不是直接Select

if not Connected then
begin
UserName:='';
Password:='';
Connect;
...
end;
Select...
[解决办法]
做个时钟,久不久连接一次

[解决办法]

引用:
Oracle 自动关闭了,此时可以试试重新连接一下,而不是直接Select

if not Connected then
begin
UserName:='';
Password:='';
Connect;
...
end;
Select...


引用:
做个时钟,久不久连接一次


不行啊,长时间没操作的时候,没有再查询,用鼠标去点、滚动DBGrid是会报错的。
[解决办法]
所有的资料库伺服器都这样的,太久没动作,自己会断线,否则大家都连上不动作不就塞了?所以你的客服端要做一下更动
[解决办法]
引用:
引用:Oracle 自动关闭了,此时可以试试重新连接一下,而不是直接Select

if not Connected then
begin
UserName:='';
Password:='';
Connect;
...
end;
Select...

引用:……


比如说每20秒触发一下以下代码:
if adoconnection.connected = false then adoconnection.connected=true;

这样也不行吗?

读书人网 >.NET

热点推荐