• ArcGIS10.x Engine直连提示连接超时ORA-12170 来自:http://www.iarcgis.com/?p=1004


    导语

    随着Esri大力宣传直连,用户也越来越由服务连接,改为直连,当然ArcGIS Engine开发用户也不例外。

    环境

    Oracle数据库,ArcGIS版本不限,不过由于9版本多以服务连接,以10版本之后作为测试对象

    问题描述

    由于现在都用直连了,而且直连需要安装数据库客户端,Oracle客户端可能对某些用户也比较难以把握,一般就是用比较方便的Instant Client ,这个客户端直接解压缩,配置环境变量即可。

    但是用户的环境比较特殊,默认的1521数据库端口是不暴漏给客户端用户的,DBA给客户端用户另外开辟了一个非1521端口,而且现在如果使用IntantClient都默认使用EZConnect方式,
    也就是IP:端口号/服务名,如果你的端口号默认1521,这个写法也可以把端口号省略掉,IP/服务名

    那么问题就出来了,使用ArcGIS Engine连接SDE的代码如下:

    public IWorkspace Connect_SDE()
            {
                IPropertySet propertySet = new PropertySetClass();
                propertySet.SetProperty("INSTANCE","sde:oracle11g:192.168.220.131/orcl");
                propertySet.SetProperty("USER", "sde");
                propertySet.SetProperty("PASSWORD", "sde");
              
    
                IWorkspaceFactory sdefactory = new SdeWorkspaceFactoryClass();
                IWorkspace sdeWorkspace = sdefactory.Open(propertySet, 0);
                return sdeWorkspace;
            }

    如果是默认端口1521,用户可以按照上面的连接即可,但是如果修改了端口号,用户需要添加端口号,相关代码为

    propertySet.SetProperty("INSTANCE","sde:oracle11g:192.168.220.131:1522/orcl");

    但是使用这种方式,ArcGIS Engine会报一个超时的错误。

    问题原因

    这个问题是一个Bug

    Bug Number  NIM077055
    Submitted  Jan 17, 2012 11:27 AM
    Severity  Medium
    Applies To  No Product Found
    Version Found  No Version Found
    Prog Language  N/A
    Server Platform  
    Client Platform  
    Database  All
    Locale  N/A
    Status  
    Version Fixed  10.1
    SP Fixed  N/A

    解决方案

    1、如果使用默认1521端口,就是用上面代码的连接方式,注意不能包含端口号
    2、如果使用非1521端口,你就必须安装一个Oracle客户端的管理员版本,配置NetserviceName就可以了
    假如你的netservicename名称为:orcl_123

    propertySet.SetProperty("INSTANCE","sde:oracle11g:orcl_123");

    总结

    在ArcGIS Engine开发过程中,虽然可以类比ArcGIS for Desktop的功能和写法,但是在连接参数这块可能有所区别
    1、ArcGIS for Desktop不需要写sde:oracle11g、支持端口号
    2、ArcGIS Engine必须要写sde:oracle11g、不支持端口号

    iarcgis.com,版权所有丨如未注明,均为原创丨本网站采用BY-NC-SA协议进行授权,转载请注明转自:http://www.iarcgis.com/?p=1004
  • 相关阅读:
    Windows下Android开发环境搭建
    解决Win7下打开或关闭Windows功能空白一片
    C#中得到程序当前工作目录和执行目录的一些方法
    创业者必看的小故事
    Sql Server 2005外围应用应用配置器打不开了怎么办
    vs2005无法Web调试
    SQL Server 全局变量
    转 document.documentElement与document.body
    [转]使用SSMA将Oracle数据库转成SQL Server 2008
    Delphi 2009、C++Builder2009正式发布
  • 原文地址:https://www.cnblogs.com/gisoracle/p/4393964.html
Copyright © 2020-2023  润新知