首页 文章

[Oracle] [ODBC] [Ora] ORA-12170:TNS:发生连接超时错误[IM006] [Microsoft] [ODBC驱动程序管理器]驱动程序的SQLSetConnectAttr失败

提问于
浏览
3

我创建了一个SSIS包,用于将数据从Oracle数据库提取到SQL Server数据库 . 我在本地计算机和服务器上成功 Build 了ODBC连接,我可以在两种环境下使用sqlplus连接到Oracle数据库 . 我的包在我的本地机器上正常运行 . 当我从服务器上的Package store运行它时,它也成功执行但问题是当我以sql作业运行包时出现此错误:

描述:

System.Data.Odbc.OdbcException:ERROR [HY000] [Oracle] [ODBC] [Ora] ORA-12170:TNS:发生连接超时错误[IM006] [Microsoft] [ODBC驱动程序管理器]驱动程序的SQLSetConnectAttr失败错误[HY000] [Oracle] [ODBC] [Ora] ORA-12170:TNS:System.Data.Odbc.OdbcConnectionHandle..ctor上的System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle RetCode retcode)发生连接超时(OdbcConnection连接OdbcConnectionString constr) System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection上的System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions选项对象poolGroupProviderInfo DbConnectionPool池DbConnection owningObject)中的System.Data.Odbc.OdbcConnectionOpen..ctor(OdbcConnection outerConnection OdbcConnectionString connectionOptions)中的OdbcEnvironmentHandle environmentHandle) (DbConnection owningConnection DbConnectionPoolGroup poolGroup)在System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)处于System.Data.Odbc.OdbcConnection.Open()中的System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection DbConnectionFactory connectionFactory)

它有什么意义吗?

3 回答

  • 0

    ORA-12170表示与数据库侦听器的TCP连接失败 .

    如果这是一直发生的错误,请检查连接字符串(特别是端口号),防火墙和网络ACL .

    如果这是一个暂时的错误,我自己最近没有这个问题,并在http://distracted-it.blogspot.co.nz/2014/04/ora-12170-tnsconnect-timeout-resolved.html上发表了关于它的博客

    希望能帮助到你 .

  • 0

    ORA-12170可能由于缺少权限而导致 . Sql Server代理服务帐户必须能够访问Oracle客户端文件夹 . 您可以通过以管理员身份登录服务器并尝试手动运行作业来测试这是否是问题,如果它以这种方式工作,那么它可能是权限 . 要更改权限:

    • 浏览到Oracle文件夹,例如C:\ Oracle64

    • 右键单击文件夹,单击“属性”,“安全”选项卡,单击“编辑”,单击“添加”

    • 将"Locations"更改为您所在的机器名称 .

    • 输入名称“NT Service \ SqlServerAgent”(这必须完全正确),然后单击“检查名称” .

    • 单击“确定”,“应用”,“确定”返回安全选项卡,您应该看到“SQLSERVERAGENT”有一个“读取和允许”,“读取”,“列出文件夹内容”
      enter image description here
      的勾号 .

  • 0

    有时,当您访问其中一个查询中的DBLINK时,会发生这种情况,并且dblink上指向的数据库已关闭,因此您也必须检查它 .

相关问题