首页 > 解决方案 > SlashDB 和 Azure SQL DB 的连接超时

问题描述

我刚刚安装了 SlashDB 并成功连接到 Azure SQL DB。查询工作,一切都很好。但是,过了一会儿,如果我重试之前的工作查询,我会从 SlashDB 收到一个错误:

500 内部服务器错误 (pyodbc.OperationalError) ('08S01', u'[08S01] [FreeTDS][SQL Server]写入服务器失败 (20006) (SQLExecDirectW)')

如果这很重要,我不会向服务器写任何东西。但是,如果我立即重试查询,它就会起作用。我对这一切的深入分析(=猜测)是 SQL Server 终止了空闲连接。现在,我希望 SlashDB 在失败时重试,而不是向客户端返回错误。这可能吗?

标签: sql-serverazureslashdb

解决方案


显然,由于冗余限制或 30 分钟空闲,Azure SQL DB 可能会中断连接。

https://azure.microsoft.com/en-us/blog/connections-and-sql-azure/

出于性能原因,SlashDB 不会为每个请求建立一个新连接,而是维护一个连接池。

MySQL 也有类似的行为,这是众所周知的(60 分钟空闲超时),而 SlashDB 实际上有一个尝试重新连接的逻辑。它应该对所有数据库类型实现相同的功能,但我需要与开发团队确认(如果不是这种情况,请修复)。

同时,您可以在客户端重试或发送定期请求以避免超时。


推荐阅读