[Oracle][ODBC][Ora]ORA-12170: TNS: истекло время ожидания подключения ОШИБКА [IM006] [Microsoft][Диспетчер драйверов ODBC] Ошибка SQLSetConnectAttr драйвера

Я создал пакет служб SSIS для извлечения данных из базы данных Oracle в базу данных сервера SQL. Я успешно установил соединение ODBC на своей локальной машине и на сервере, я могу подключиться к базе данных Oracle, используя sqlplus в обеих средах. И мой пакет отлично работает на моей локальной машине. он также успешно выполнен, когда я запускаю его из хранилища пакетов на сервере, но проблема в том, что когда я запускаю пакет как задание sql, я получаю эту ошибку:

Описание:

System.Data.Odbc.OdbcException: ОШИБКА [HY000] [Oracle][ODBC][Ora]ORA-12170: TNS: истекло время ожидания подключения ОШИБКА [IM006] [Microsoft][Диспетчер драйверов ODBC] Ошибка SQLSetConnectAttr драйвера Ошибка ОШИБКА [HY000] [ Oracle] [ODBC] [Ora] ORA-12170: TNS: Тайм-аут соединения произошел в System.Data.Odbc.OdbcConnection.HandleError(Retcode кодирования OdbcHandle hrHandle) в System.Data.Odbc.OdbcConnectionHandle..ctor Соединение соединения (соединение с OdbcConnection). environmentHandle) в System.Data.Odbc.OdbcConnectionOpen..ctor (OdbcConnection outerConnection OdbcConnectionString connectionOptions) в System.Data.Odbc.OdbcConnectionFactory.CreateConnection(опции DbConnectionOptions Объект poolGroupProviderInfo DbConnectionPool бассейн DbConnection owningObject) в System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection владение Connection DbConnectionPoolGroup poolGroup) в System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) в S ystem.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection externalConnection DbConnectionFactory connectionFactory) в System.Data.Odbc.OdbcConnection.Open()

Есть ли смысл?

3 ответа

Иногда это происходит, когда вы обращаетесь к DBLINK в одном из ваших запросов, и база данных, указанная на dblink, не работает, поэтому вы должны это проверить.

ORA-12170 указывает, что не удалось установить соединение TCP с прослушивателем базы данных.

Если это происходит постоянно, проверьте строки подключения (особенно номера портов), брандмауэры и сетевые списки контроля доступа.

Если это временная ошибка, которая не всегда возникает, или если брандмауэры и сетевые ACL видны нормально, проверьте правильность поведения ARP. Недавно я сам столкнулся с этой проблемой и написал об этом в блоге по адресу http://distracted-it.blogspot.co.nz/2014/04/ora-12170-tnsconnect-timeout-resolved.html

Надеюсь, поможет.

ORA-12170 может возникнуть из-за отсутствия разрешений. Учетная запись службы агента сервера SQL должна иметь доступ к папке клиента Oracle. Вы можете проверить, является ли это проблемой, войдя на сервер как администратор и попытавшись запустить задание вручную, если оно работает таким образом, то это могут быть разрешения. Чтобы изменить разрешения:

  • Перейдите в папку Oracle, например, C:\Oracle64
  • Щелкните правой кнопкой мыши папку, выберите Свойства, вкладка "Безопасность", нажмите "Изменить", нажмите "Добавить".
  • Измените "Locations" на имя машины, на которой вы находитесь.
  • Введите имя "NT Service\SqlServerAgent" (это должно быть точно) и нажмите "Проверить имена".
  • Нажмите "ОК", "Применить", "ОК", чтобы вернуться на вкладку "Безопасность", вы должны увидеть, что "SQLSERVERAGENT" имеет галочку для "Читать и разрешать, читать, перечислять содержимое папки". ,
Другие вопросы по тегам