我们在Windows Azure中托管了一些云服务,还有一些Azure SQL数据库。在晚上(4:00 - 6:00 utc),运行一些作业将数据导入数据库。几周以来,所有作业都因数据库超时过期而失败。如果我在模拟器中的本地计算机上稍后(在7:00 - 9:00 utc)运行作业,则所有作业在同一数据库上都没有任何问题。
在mport时间,来自我们站点的数据库服务器上没有多少流量。管理门户的监视显示没有很多打开的连接,没有受限制的连接,也没有连接错误。在我的本地运行期间有更多的流量。
sys.event_log不包含任何错误或其他可能的问题。
是否有任何日志或其他选项可以获得有关乔布斯夜间失败原因的更多信息?
的更新 的 似乎SQL Azure Server忽略了命令超时属性。作业从4:30 UTC开始,并在4:37以超时异常停止。但是获得超时的查询的命令超时为1200(20分钟)。在启动命令之前,有一些来自ftp-server,文件解析和其他SQL查询的下载。
答案 0 :(得分:0)
请注意,SQL Azure不是MS SQL的完整版本,并且确实存在一些限制。最值得注意的限制是其构建的基础设施。您的SQL Azure数据库将托管在与数百名其他用户共享资源的小型实例服务器上。虽然机器上有合理的使用政策,但服务器确实需要时间。
我的建议是如何确定Job是否实际启动,或者连接池是否在启动作业之前超时。 I.E.创建一个插入的作业表来表示它已启动并将其作为您工作的第一个操作。
或者,您可以考虑迁移到Azure中的VM设置。这是您有一个小型或中型实例VM,其上运行完整版本的MS SQL Server。这样,您可以正确地对服务器运行作业,并更适当地控制连接池。