Проблема сосуществования Oracle Ordcom и кошелька
Мы используем инфраструктуру Oracle ORDCOM в нашей базе данных 11.1.0.7 для взаимодействия с COM-объектом. COM-объект ничего не делает с базой данных. Этот процесс работал отлично в течение нескольких лет.
Сегодня я создал Oracle Wallet и добавил учетные данные для sys, чтобы мой скрипт мог войти в систему с помощью "/@coredev as sysdba", а не сохранять имя пользователя и пароль в виде открытого текста.
Проблема заключается в том, что как только я добавил строку "SQLNET.WALLET_OVERRIDE = TRUE" в файл sqlnet.ora, вызов ORDCOM OACreate вызывает ошибку протокола ORA-28578: во время обратного вызова из внешней процедуры. У меня есть программа за пределами базы данных, которая может проверить COM-объект и продолжает работать правильно. Как только я закомментирую строку в sqlnet.ora, все будет работать правильно, но, разумеется, я больше не смогу использовать кошелек.
1 ответ
Oracle воспроизвела эту проблему с помощью внутреннего контрольного примера и создала для него ошибку. Обходной путь заключается в использовании отдельного sqlnet.ora/tnsnames.ora для кошелька, задающего для переменной среды TNS_ADMIN путь к альтернативным файлам.