2017-09-25 3 views
1

Nous avons eu une application Flask utilisant pymssql fonctionnant depuis 1,5 ans sous Python 2.7 et SQL Server 2012. Nous avons déplacé l'application vers un nouvel ensemble de serveurs et mis à niveau le Flask application à Python 3.6 et un nouveau serveur de base de données à SQL Server 2016. Ils sont les deux serveurs Windows.Erreur Pymssql 20017 après la mise à niveau vers Python 3.6 et SQL Server 2016

Depuis lors, nous avons été faire 20017 intermittents erreurs:

pymssql.OperationalError (20017, message d'erreur b'DB-Lib 20017, gravité 9: \ nUnexpected EOF du serveur (xx.xx.xx .xx: 1433) \ nDB-Lib message d'erreur 20002, gravité 9: \ nLa connexion à Adaptive Server a échoué (xx.xx.xx.xx: 1433) \ n ')

Seul un petit pourcentage des appels renvoie ceci, mais assez pour causer des problèmes. Je peux fournir des versions spécifiques de tout ce que nous faisons.

Une solution proposée est de passer à pyodbc, mais nous avons des centaines de requêtes et d'appels de procédures stockées, dont beaucoup avec des UUID, que pyodbc ne gère pas aussi proprement que pymssql.

J'ai installé pymssql via une roue précompilée (pymssql-2.1.3-cp36-cp36m-win_amd64) parce que pip ne peut pas le construire sans une ancienne version. Toute idée sur le débogage ou la résolution de ce problème serait utile.

Répondre

1

Eh bien, notre réponse était de passer à pyodbc. Quelques fonctions utilitaires en ont fait plus ou moins un copier-coller avec quelques pièges ici et là, mais pymssql a été de plus en plus difficile à construire, à mettre à jour et à utiliser ces dernières années.