Я использую threading
для одновременного выполнения нескольких запросов SQL. Сначала я добавляю соединения в список с именем connections
следующим образом:
import pyodbc
connections = []
num_connnections = 100
for i in range(num_connections):
connections.append(pyodbc.connect('connection_string'))
Это работает и работает с несколькими запросами. Однако, если я запускаю этот процесс много раз, я получаю ошибку
('HY000', '[HY000] [Oracle] [ODBC] [Ora] ORA-12519: TNS: не найден соответствующий обработчик службы
(12519) (SQLDriverConnect); [HY000] [Oracle] [ODBC] [Ora] ORA-12519: TNS: не найден соответствующий обработчик службы (12519) ')
Я вполне уверен, что это потому, что количество соединений ODBC становится слишком большим. Когда я пытаюсь закрыть их с помощью
pyodbc.pooling = False
for i in connections:
i.close()
del i
del connections
список connections
удален. Однако, похоже, что он не закрыл никаких соединений, потому что при следующем запуске pyodbc.connect('connection_string')
я сразу получаю ту же ошибку. Любые идеи о том, что это может быть?