Oracle中的文件DB链接结束问题

问题描述

我有一个Web应用程序,该应用程序连接到一个视图,该视图具有通过oracle中的DB链接从远程数据库填充的数据。作为计划维护的一部分,此远程数据库每周关闭一次。此数据用于获取登录到Web应用程序的用户详细信息。问题是,只要该数据库关闭并重新启动,用户就会收到以下错误

sql state [63000]; error code [3150]; ORA-03150: end-of-file on communication channel for database link ORA-02063: preceding line from *db link name*

即使在数据库启动几个小时后,问题仍然存在,直到我们登录到应用程序并手动刷新浏览器至少6次(为什么需要6次刷新也是一个谜)。知道是什么原因造成的吗?我检查了alert.log,它没有其他详细信息。没有人工干预,我们如何解决这个问题?

解决方法

DB链接尝试尽可能长时间地保持打开的连接。一旦远程数据库关闭,它将使连接无效。对DB链接的下一步操作将导致此类错误,毫不奇怪地指出通信通道已关闭。

如对this question的回答中所建议,您可以告诉系统一旦远程数据库计划维护窗口开始,就关闭数据库链接。因此,下次有人尝试使用数据库链接时,它将启动新的连接。