导语

随着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

ArcGIS10.x Engine直连提示连接超时ORA-12170 来自:http://www.iarcgis.com/?p=1004的更多相关文章

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

    导语 随着Esri大力宣传直连,用户也越来越由服务连接,改为直连,当然ArcGIS Engine开发用户也不例外. 环境 Oracle数据库,ArcGIS版本不限,不过由于9版本多以服务连接,以10版 ...

  2. 使用 FileZilla FTP Client连接Vsftpd在执行LIST命令后提示连接超时

    使用 FileZilla FTP Client 连接 Vsftpd在执行LIST命令后提示连接超时. vi /etc/vsftpd/vsftpd.conf 添加: #开启被动模式 pasv_enabl ...

  3. CentOS 调用.Net 的Web Service,提示连接超时解决方案

    我是使用axis调用.NET 的Web Service ,在Window下跑没有问题,将项目部署到Linux下,发现Web Service 连接超时,百度了下,发现是因为Linux不能直接跑.Net, ...

  4. 访问redis集群提示连接超时的问题

    上周在服务器通过docker部署了一个单机版redis集群,今天通过StackExchange.Redis访问的时候报了这个错: 提示我把超时时间设置一下,我去服务器上找到redis的配置文件,发现不 ...

  5. SecureCRT连接本地的Vmware虚拟机(CentOS)时提示连接超时“Connection timed out”

    测试了一下,直接在Vmware的VM里面可以ping通宿主机. 但是宿主机无法ping通VM. 后面发现是本地的网络设置里面的vmware的NAT的网卡设置了手工填写地址和DNS. 修改为自动获取.问 ...

  6. plsql通过instantclient连接oracle数据库报连接超时

    配置:数据库oracle10.2;服务器操作系统centos5.5:客户机操作系统win7 32位:plsql版本10.0.5 配置前提必须关闭客户机与服务器操作系统的防火墙,否则会出现“连接超时”的 ...

  7. 关于Oracle连接超时的问题

    测试环境ORACLE 11.2.0. 如果连接池设置单个连接闲置时间大于数据库连接超时时间,则连接池中的连接发出数据请求时会出现Connect timeout occurred错误, 这是由于连接超时 ...

  8. MySQL连接问题【如何解决MySQL连接超时关闭】

    --MySQL连接问题[如何解决MySQL连接超时关闭] ------------------------------------------------转载 最近做网站有一个站要用到WEB网页采集器 ...

  9. 一次“ora-12170 tns 连接超时”的经历

      win7    64位系统 oracle  10g   64位 plsql之前连接是好使的,突然连接不上,提示错误“ora-12170 tns 连接超时” 1.ping IP    没有问题 2. ...

随机推荐

  1. javaee 第14周

    1.web server Web Server中文名称叫网页服务器或web服务器.WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务.Web服务器可以解析( ...

  2. powerDesigner 把name项添加到注释(comment),完美方案!

    第一次写博客,分享一点经验吧,平时大家用powerDesigner的时候,pd是不会把name项默认添加到comment的,所以生成的数据库表里面也没有中文字段的注释. 我在网上查了一下.有解决方案了 ...

  3. sqlit3事务

    事务定义了一组SQL命令的边界,这组命令或者作为一个整体被全部执行,或者都不执行.事务的典型实例是转帐. 事务的范围 事务由3个命令控制:BEGIN.COMMIT和ROLLBACK.BEGIN开始一个 ...

  4. springboot设置接口超时

    springboot 设置接口超时 1.配置文件 application.properties中加了,意思是设置超时时间为20000ms即20s, spring.mvc.async.request-t ...

  5. 细说PHP-5.4 变量的类型

    变量类型是指保存在该变量中的数据类型.计算机操作的对象是数据在计算编程语言世界里,每一个数据也都有它的类型,具有相同类型的数据才能彼此操作.例如书柜是装书用的.大衣柜是放衣服用的.保险柜是存放贵重物品 ...

  6. Mysql 访问远程数据库,报错:1130-host ... is not allowed to connect to this MySql server 开放mysql远程连接 不使用localhost

    参考:http://www.cnblogs.com/xyzdw/archive/2011/08/11/2135227.html 解决方法: 1. 改表法. 可能是你的帐号不允许从远程登陆,只能在loc ...

  7. 【传智播客】Libevent学习笔记(五):基本类型和函数

    目录 00. 目录 01. 基本类型 1.1 evutil_socket_t类型 1.2 标准类型 1.3 各种兼容性类型 02. 可移植的定时器函数 03. 套接字API兼容性 04. 可移植的字符 ...

  8. git 超时 时长 设置?

    [Pipeline] { (Checkout) [Pipeline] checkout > git.exe rev-parse --is-inside-work-tree # timeout=1 ...

  9. vue.js中的表单radio,select,textarea的v-model属性的用法

    只要是表单元素,其值已经不会再用value来定义了,但是placeholder还是可以用来设置默认值. section1--input:type="text" type=" ...

  10. 记录一个scrapy的坑

    在win10上用命令 pip install scrapy 安装scrapy的时候提示: Could not find a version that satisfies the requirement ...