pymssql

时间:2017-11-30 18:43:51

标签: python freetds pymssql

我们已经使用pymssql和FreeTDS超过2年了,现在没有问题。我们最近将pymssql升级到2.1.3,并从Python 3.4升级到3.6。自从升级以来,我们间歇性地(但经常)得到以下错误。

(20017, b'DB-Lib error message 20017, severity 9:\nUnexpected EOF from the server (FBOps-Prod:1433)\nDB-Lib error message 20002, severity 9:\nAdaptive Server connection failed (FBOps-Prod:1433)\n')

失败没有明显的模式。 99%以上的数据库调用成功,并且在任何存储的proc或sql上都可能失败。

我在网上搜索并空了。

我重新安装了pymssql和FreeTDS,但它仍然失败。

我已经检查了最大连接数,它是4096,这应该是充足的,因为一次只有不超过10个活跃用户。

我已经确认我们正确关闭了所有数据库连接。

我认为这是一个FreeTDS错误并发布到FreeTDS邮件列表但尚未收到任何回复

以下是TDS日志文件的摘录(最后的完整日志文件)。

    packet.c:639:Received packet
0000 04 01 00 11 00 5c 01 00-fd 00 00 d4 00 00 00 00 |.....\.. ........|
0010 00                     -                        |.|

token.c:565:processing result tokens.  marker is  fd(DONE)
token.c:2081:tds_process_end: more_results = 0
      was_cancelled = 0
      error = 0
      done_count_valid = 0
token.c:2098:                rows_affected = 0
token.c:2101:tds_process_end() state set to TDS_IDLE
util.c:165:Changed query state from READING to IDLE
util.c:83:logic error: cannot change query state from IDLE to PENDING

我查看了FreeTDS代码,但没有足够的知识来理解它失败的原因。任何帮助表示赞赏。

0 个答案:

没有答案