我最近使用Azure SQL Analytics为我的Azure SQL DB设置了一些分析。(https://docs.microsoft.com/en-us/azure/azure-monitor/insights/azure-sql)
测量的指标之一是超时。我在我的应用程序中进行了日志记录,没有看到任何阻塞或死锁,也没有看到任何查询实际失败的地方。
我的问题是--什么是超时?
作为一个额外的问题,大多数时候我看到四个暂停在一起。这是一个node.js应用程序,我使用一个乏味的驱动程序与数据库交互。在乏味中是否存在重试查询四次的情况,等等?
发布于 2020-03-28 10:07:27
连接超时是因为应用程序无法连接到服务器。可能的原因可能是登录后阶段所经过的最大毫秒数。连接可能在等待服务器完成登录过程和响应时超时;也可能在尝试创建多个活动连接时超时。
Azure SQL数据库将关闭超过30分钟的空闲连接。摘录:“例如,如果您通过SQL Server Management Studio连接到数据库的时间超过30分钟,而没有任何活动请求,则会话将超时,并且因为没有活动请求,SQL Azure无法返回错误”。来源是here。
尝试连接到Azure SQL数据库时,你需要重试逻辑。我的建议是使用繁琐的connection pool,因为池会重试连接。
设置retryDelay参数。此参数是连接失败后重试前等待的毫秒数。默认值为5000。
idleTimeout参数是关闭未使用的连接之前的毫秒数。默认值= 300000,这对于Azure SQL连接是足够的。
https://stackoverflow.com/questions/60885946
复制相似问题