У меня есть некоторые проблемы при изменении службы базы данных через модуль cx_Oracle.
Кажется, что каким-то образом первое соединение "сохраняется", даже если удалить объект или создать новое соединение в дочернем процессе.Поэтому, когда я пытаюсь установить соединение с другой службой, возникает «ORA-01017: неверное имя пользователя / пароль; вход в систему запрещен»
Я использую кошелек для организации соединения.
class Connection(object):
def __init__(self,oracle_user,instance=os.environ["ORACLESRV"],env=os.environ["ENVPURPOSE"]):
self.oracle_user = oracle_user
self.instance = instance
self.env = env
wallet_path = "$SCRIPTS/oracle/wallets/{env}/{oracle_user}".format(env=self.env.upper(),oracle_user=self.oracle_user.upper())
os.environ["TNS_ADMIN"] = os.path.expandvars(wallet_path)
os.environ["NLS_LANG"] = "Italian_Italy.UTF8"
self.connection = cx_Oracle.connect("/@"+self.instance.upper())
Первое соединение установлено без ошибок, но когда я пытаюсь изменить службу (т. Е. Аргумент «instance» класса Connection), соединение отклоняется.Параметры передаются в конструктор правильно, но сценарий продолжает видеть первый кошелек, который, очевидно, содержит user / pwd для другого сервиса.
Как мне преодолеть эту «постоянство»?