У меня есть код python, который подключается к базе данных MS SQL с помощью pyodb c. Я получаю данные из MS SQL и вношу в них некоторые изменения. Код работает на сервере Linux. Первоначально код работал нормально, но через несколько месяцев я получал совершенно случайную OperationalError при подключении.
pyodb c .OperationalError: ('08S01', '[08S01] [Microsoft] [ODB C Драйвер 17 для SQL Сервер] Поставщик TCP: Код ошибки 0x274 C (10060) (SQLExecDirectW) ')
Ошибки полностью случайны. Я использую хранимые процедуры для извлечения данных, и они отлично работают на моем SQL Server Management Studio. Я использую SQL Server 2017, python 3.5.2 и pyodb c 4.0.30. Я использую следующий оператор для подключения к базе данных.
dbconnection = pyodbc.connect("Driver={ODBC Driver 17 for SQL Server};Server="+Server+";Database="+Database+";UID="+UserID+";PWD="+Password, autocommit=True)
Я попытался использовать код переподключения для решения проблемы. Но проблема сохраняется, код всегда дает сбой пять раз.
**
retry_flag = True
retry_count = 0
while retry_flag and retry_count < 5:
try:
cursor = dbconnection.cursor()
cursor.execute("EXEC sp")
countyList = cursor.fetchall()
retry_flag = False
except:
print ("Retry after 60 sec")
retry_count = retry_count + 1
time.sleep(60)
**
Я могу предоставить дополнительную информацию, если это поможет ответить на этот вопрос.