gpt4 book ai didi

oracle - 如果连接丢失,从 SQL Server 到 Oracle 服务器的 OpenQuery 将无限期挂起

转载 作者:行者123 更新时间:2023-12-02 05:11:08 26 4
gpt4 key购买 nike

我有一个在 SQL Server 2005 数据库上运行的计划作业。它运行一个从 View 导入数据的存储过程。此 View 包含指向链接的 Oracle 服务器的 OPENQUERY

我无法控制 Oracle 服务器 - 它在地理上和虚拟上都与 SQL Server 安装分开。该 View 只有只读访问权限,我每 30 分钟从中获取一次数据。

有时,与链接服务器的连接会断开、挂起或无响应。发生这种情况时,作业(在 SQL Server 上)也会挂起,无限期地等待连接返回。在这种情况下,作业永远不会失败也不会完成,我第一次知道它是在用户提示丢失数据时。

如果存在连接问题,查询同一服务器上的数据库会按预期失败 - 只有当在链接的 Oracle 服务器上使用 OPENQUERY 时,它才会失去其“意识” ' 的连接。

有没有办法让作业意识到与链接服务器的连接已断开并相应地失败?或者我是否必须创建第二个作业来检查第一个作业是否挂起?

最佳答案

对于长时间运行的操作,我们遇到了类似的问题。操作将开始(并完成他的工作并完成),但电话从未返回。最终我们能够将其追溯到防火墙关闭与 Oracle 服务器的连接。

我们可以通过在服务器上使用参数 SQLNET.EXPIRE_TIME 来防止这种情况,它会定期“ping”客户端,从而防止防火墙关闭端口。也许这对您的情况也有帮助。

关于oracle - 如果连接丢失,从 SQL Server 到 Oracle 服务器的 OpenQuery 将无限期挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5637689/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com