ArcSDE服务入门.docx
- 文档编号:18010261
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:13
- 大小:25.14KB
ArcSDE服务入门.docx
《ArcSDE服务入门.docx》由会员分享,可在线阅读,更多相关《ArcSDE服务入门.docx(13页珍藏版)》请在冰点文库上搜索。
ArcSDE服务入门
标签:
arcsde 2009-12-1320:
01
AO与AE的区别与联系及ArcIMS学习(转)
2006年08月10日星期四下午05:
39
ArcSDE服务入门1
ArcSDE程序服务介绍:
ArcSDE是空间数据与GIS程序之间的一个重要的“通路”,使用它可以将ArcGIS等程序与关系数据库系统联系起来,这些关系数据库并不是如ACCESS的桌面型,而是类似ORACLE和SQLSERVER的分布式关系数据库服务系统。
ArcSDE提供了两种数据联结架构,即两层和三层模型,一般我们都是使用的三层架构,如果用户需要使用前者,可以在ArcCatalog中选择“产生一个直接联结”。
Sdemon命令可以允许管理员管理和监视ArcSDE服务,在SDE服务启动后,始终存在一个giomgr的SDE服务器进程,它负责监听连接请求(服务器名和端口)、验证连接(密码和用户)、给每个成功的连接分配一个独立的gsrvr进程,而gsrvr负责在客户端和服务器之间进行通讯(使用相同的服务器名和端口)。
ArcSDE是一种客户端/服务器模式,因此存在几个需要注意的属性:
1.Home目录它是一个被记录的路径,成为SDEHOME,这个目录中包含可执行文件,配置文件和动态共享库等。
2.两个进程giomgr和gsrvr(作用如前)
3.由于SDE走的是TCP/IP协议,因此服务器名和端口在通讯在起着重要的作用。
服务建立后,服务名和端口号被存储在“C:
\WINNT\system32\drivers\etc”的services文件中。
它有两种形式:
服务名:
端口、IP:
端口。
4.配置参数配置参数被保存在一个名为SDE.SERVER_CONFIG的表中,缺省的参数文件为giomgr.defs,它被存放在SDEHOME中的etc文件夹中。
启动服务:
1.使用正常服务启动程序
2.Sdemon–ostart–psde
参数配置:
SDE服务的参数是可以被修改的,这个过程可以通过修改数据库中表或修改service.sde或dbinit.sde两个文件,这两个文件都被保存在SDEHOME中的etc文件夹中。
对于一个SDE服务而言,外界程序联系到它的方法是通过TCP/IP协议的,因此,在默认的情况下,当我们打开service.sde文件,我们会发现下面的代码:
esri_sde5151/tcp#ArcSDE9.0forOracle9i
这就是名为esri_sde的SDE服务的端口号,当我们执行Sdemon–ostart–psde时,系统会寻找这个文件的参数,看看是否匹配。
如果匹配再验证密码和用户。
在一台机器上可以同时存在多个SDE服务,这些服务名将不一样,占用的端口也不一样,但是它们的参数都保存在service.sde文件,如:
esri_sde25152/tcp#ArcSDE9.0forOracle9i
SDE服务需要从dbinit.sde文件中读取一些系统的环境变量,以获得必要的关系数据库信息,如:
#OracleSIDforserviceesri_sde.
setORACLE_SID=SDE
上面的语句指明了SDE服务使用的是那一个ORACLE数据库例程。
下面是获得全部参数的命令:
Sdemon–oinfo–Iconfig
用户也可以打开SDE.SERVER_CONFIG表,查看其中的具体参数。
服务器的管理:
服务器的管理包括服务的启动、暂停和关闭两个操作,在WINDOWS平台下,服务的启动关闭,例程的关闭都可以可视化实现,下面我们将介绍使用命令行的方式:
1.启动一个远程SDE服务
Sdemon–ostart–pmypassword–sservice–iarcsde
上句中的-p后为密码,-s后为远程机器名,而-i为SDE服务名
2.暂停一个服务
Sdemon–opause–pmypassword
3.重新启动
Sdemon–oresume–pmypassword
4.关闭一个giomgr进程
Cd%SDEHOME%\tools
Killp100(100为进程号)
Doyoureallywanttokillprocesswithpid100(y/n)?
Y
5.关闭一个服务
Sdemon–oshutdown–pmypassword
6.关闭所有用户会话
Sdemon–okill–tall
kkriven
2005-11-1016:
05
ArcSDE入门2
SDE服务的监视:
为了显示SDE服务的状态,我们需要使用sdemon命令来显示一些信息:
1.状态监视
Sdemon–ostatus
2.数据锁
Sdemon–oinfo–Ilocks
SDE提供了四种锁,它们分别是:
对象锁:
用于版本和地理数据库的激活
表锁:
用于锁定表
区域锁AreaLocks:
用于锁定一个要素类的空间范围
状态锁StateLocks:
用于锁定一个要素类或表的版本状态
3.用户状态
Sdemon–oinfo–Iusers
SDE服务故障解决:
1.启动SDE服务时发生了什么?
?
SDE服务程序启动一个giomgr进程
?
进程从dbinit.sde文件中获得系统环境变量
?
进程探测服务的license是否已经安装
?
进程读取services.sde文件
?
进程获得TCP/IP协议和服务名
?
Giomgr使用dbinit.sde和系统变量定义的连接信息连接到一个DBMS上
?
Giomgr遍历所有锁定表
?
服务启动了。
giomgr进程开始监听它的端口,以确定外界是否有连接
2.SDE客户端连接服务时候发生了什么?
?
Giomgr进程监听着它的端口
?
程序确认一个连接到服务的连接请求
?
Giomgr比较程序计算机的锁定时间和它的主机时间,如果它的时间大于MAXTIMEDIFF,则不允许连接
?
Gimogr开始比较客户端程序的ARCSDE版本和ARCSDE服务端版本,如果前者比后者旧,连接将被拒绝
?
Gimogr进程启动一个gsrvr进程,为客户端程序服务
?
Gsrvr进程获得共享内存
?
Gsrvr进程连接到DBMS上一旦上面的过程成功,giomgr将继续监听下一个连接
除次以外,我们还可以通过命令行的方式来管理服务和数据,这些程序都放在%SDEHOME%\bin文件夹内,如:
Alphabeticallistingofcommands
CommandDescription
cov2sde
ConvertsArcInfocoveragestoArcSDEfeatureclasses.
sde2cov
ConvertsArcSDEfeatureclassestoArcInfocoverages.
sde2shp
ConvertsanArcSDEfeatureclasstoanESRIshapefile.
sde2tbl
ConvertsArcSDEtablesintoINFOanddBASEtables.
sdeconfig
ManagesyourArcSDEserverconfigurationfile
sdedbtune
ExportsandimportsanArcSDEdbtunefile.
sdeexport
CreatesanArcSDEexportfile.
sdegcdrules
ManagesArcSDEgeocodingrules
sdegroup
Mergesfeatureclasses.
sdeimport
ImportsdatafromanArcSDEexportfile.
sdelayer
Administersfeatureclasses.
sdelocator
ManagesArcSDElocators.
sdelog
AdministersArcSDElogfiles.
sdemon
ManagestheArcSDEserver.
sderaster
ManagesArcSDErasterlayers.
sdeservice
ManagestheArcSDEserviceonWindowsNTplatforms.
sdesetup
InitialsetupprogramforArcSDEforyourRDBMS.
sdetable
Administersbusinesstablesandtheirdata.
sdeversion
Managesversionsofageodatabase.
sdexinfo
ProvidesdescriptiveinformationofanArcSDEexportfile.
sdexml
AdministersXMLcolumns.
shp2sde
ConvertsanESRIshapefiletoanArcSDEfeatureclass.
tbl2sde
ConvertsINFOanddBASEtablesintoArcSDEtables.
kkriven
2005-11-1016:
06
Oracle数据库简介
Oracle是一种分布式网络关系数据库系统,与一般桌面型数据库不一样的是,分布式网络数据库更接近一种“网络服务Server”的模式。
在我们的默认安装中,其实安装了下面三个部分:
1.一个客户管理机
2.一个数据库服务器,数据库服务器可以提供数据库服务,在一个服务器上可以有多个数据库。
3.一个数据库:
一个数据库有一个全局数据库名,它的形式是:
“数据库名.域名”。
全局数据库名用于区分在分布式系统中不同服务器上的数据库例程,这样,即使分布式系统中有同名的例程,也可以进行区分,如:
myoralce.scutmyOracle.wit。
而myOracle是SID,而SID即为系统标识,它用于区分一台服务器上的不同例程。
在一个服务器上有多个数据库时,就依靠SID来区分。
我们操作这种网络式分布数据库,需要使用一个外部程序来联系数据库服务器,这些过程都需要占用一定的内存空间,它们被称为“进程”。
在Oracle网络环境里,进程共有两大类,一是用户进程,另一种是服务器进程。
用户进程即PLSQL等工具程序,它通过例程的SGA来与Oracle数据库联系。
在用户进程使用中,单个的用户进程需要使用专用的内存区域,即所谓的PGA(程序全局区),PGA是用户进程私有的,不能共享。
OracleServer(数据库服务器)由例程(instance)和数据库(database)两部分组成。
其具体的组成如下:
3.1.Instance
例程是一个内存结构和后台进程的集合,其中内存结构统称为SGA,即系统全局区。
例程是一种控制数据的手段;一个例程在一个时刻仅仅能够操作一个数据库。
3.1.1.SGA结构
SGA是动态的结构,其大小由SGA_MAX_SIZE指定。
3.1.1.1.共享池sharedpool
用于存储最近使用过的SQL语句和数据字典。
它包括两个部分,即库缓存(librarycache)和数据字典缓存(dictionarycache)两部分组成。
下面是改变共享池的命令:
AltersystemsetSHARED_POOL_SIZE=64M;
库缓存用于储存使用的SQL语句,而数据字典缓存用于存储最近使用过的数据字典。
它们的大小都需要使用共享池来确定而不能自己设置。
3.1.1.2.databasebuffercache数据高速缓存区
它用于存储最近访问的数据块,由多个小缓冲区组成。
DB_BLOCK_SIZE则确定了数据块的大小。
AltersystemsetDB_CACHE_SIZE=96M;
在执行SELECT或DML时,数据都是从数据文件读取到高速缓存区执行的,即数据的访问和操作是在内存中完成的。
3.1.1.3.redologbuffer日志缓冲区
用于记录例程的变化,其尺寸由LOG_BUFFER来定义。
当执行DDL或DML时,服务器进程首先会将变化记录到日志缓冲区,然后才会修改数据的高速缓存。
其它结构
3.1.1.4.largepool大池和JAVA池(可选)
如果安装或使用JAVA的话就需要使用JAVA池。
3.1.2.后台进程结构
ORACEL有许多必须的后台进程,它是运行Oracle服务时必须的。
3.1.2.1.DBWR
用于将数据高速缓存中的脏数据写入到数据文件中。
所谓脏数据就是发生改变的数据。
3.1.2.2.PMON
用于监视服务器进程的执行,并在其失败时清除这个进程。
3.1.2.3.CKPT
用于发出检查点,用于同步数据库的数据文件、控制文件和重做文件。
3.1.2.4.LGWR
用于将日志缓冲区的内容写入到重做日志中去。
3.1.2.5.SMON
系统监控进程。
用于自动恢复实例,合并空闲空间和释放临时段。
3.1.2.6.ARCH
用于将重做日志放入到归档日志文件中去。
3.2.Database
数据库是一组OS文件的集合,它包含三种必须的文件,即数据文件(datafiles)、控制文件(controlfiles)和归档日志文件(redologfiles),这些类型的文件都有可能是多个。
3.2.1.数据库物理文件
3.2.1.1.数据文件
用于存储数据库数据,它包括数据字典,用户数据,UNDO数据,临时数据等。
数据库逻辑上由一个或多个表空间Tablespace组成,而表空间在物理上由一个或多个数据文件组成。
3.2.1.2.重做日志文件
用于记录数据库的变化,当例程出现失败或介质失败时可以使用它进行恢复数据库。
当DDL或DML时,事务会写到日志缓冲区,在特定时刻会由LGWR将这些日志写入重做日志文件。
数据库中至少有两个日志文件,它们是循环使用的。
3.2.1.3.控制文件
用于记录和维护数据库的物理结构。
3.2.1.4.归档日志Archivelog
它是重做日志的备份,它会保存全部的重做历史记录。
(在归档日志模式下数据库才会进行归档)
3.2.1.5.口令文件和参数文件
两个文件都保存在<安装路径>/database
kkriven
2005-11-1016:
08
HTMLViewer的定制
HTML浏览器是一个由ESRI的ArcIMS软件自动安装的,用于限定图形外观和IMS的WEB站点函数功能的工具。
HTML包含了大量的JavaScript和一些DHTML页面,这个浏览器提供了一个地图的框架、工具栏、图例、预览地图和其他站点的图形元素。
WEB站点的开发者可以使用HTML、JavaScript和DHTML来增加站点页面的弹性和可交互性。
一个站点中大概有30个左右的HTML文件,有些是用于初始化浏览器,有些定义浏览器的框架,其它用于装载表单核显示数据。
说实话,调整这些JavaScript和HTML来定制一个符合自己要求的浏览器是我见过的最为笨拙的开发方式。
?
HTML的文件
一个HTML浏览器的文件包括三个文件夹:
images包含了修饰地图的图片,如图标和按钮等,我们可以更换这些图标来改变站点的外观;javascript包含了所有的javascript脚本;Meta-inf是由站点自动创建的,它的存在与否对于站点没有太大的影响。
在站点根目录中的ArcIMSparam.js文件包含了一个JavaScript全局变量的集合,它可以用于改变站点的外观和行为,大量的定制都需要改变这个文件的某些参数。
经常地,我们需要修改这个文件的如工具显示、图层管理、颜色和站点图形项目。
?
HTML浏览器的启动步骤:
Default.htm是整个站点的入口,它检查客户端的浏览器是否满户地图显示需要,如IE5.0以后版本等,如果是,则载入Run.htm文件,这个文件定义了Authorize.htm和jsForm.htm两个框架;如果不支持浏览器,CannotRun.htm页面载入,通知用户不可使用。
Authorize.htm检查服务的安全设置是否已经被安装,如果是,则出现登陆对话框要求用户登陆,它调用两个JavaScript文件,ArcIMSparam.js和aimsResource.js。
此时一个GET_SERVICE_INFO的请求被发送到主地图,如果鸟瞰图没有使用相同的服务,则这个请求会再次被发送。
ArcIMSparam.js文件中包含了用于主地图和鸟瞰图的服务器的URL。
AimsResource.js则包含了多个文本,用于显示消息、按钮和标题。
Viewer.htm文件被载入。
它定义了浏览器的框架布置,如果想改变电子地图的外在框架,修改这个文件的框架配置文件。
MapFrame.htm和PostFrame.htm被载入合适的页面框架中,其他的页面根据需要被逐个载入。
完成浏览器显示的初始化工作。
下面的文件用于载入和显示数据:
buffer.htm、query.htm和storedquery.htm
?
HTML浏览器的框架
理解HTML页面的框架对于熟悉HTML浏览器是非常重要的,本文不作介绍。
上图是IE版本的HTML浏览器的布局,其他类型的浏览器稍有不同。
这些数值的单位是象素。
我们可以任意改变这些框架的尺寸以满足自己的要求。
JSForm.htm页面是隐藏的,它用于与IMS的Servlet连接器进行通讯。
?
多主机模式MultipleHosts
一般而言,由Designer产生的WEB站点是通过存放WEB页面的WEB服务器上的服务service来支持的。
用另外一句话来说,URL就像定义了服务一样,也定义了WEB服务器的主机。
如果WEB页面存放在\\my_computer\website文件夹中,典型的URL就是http:
//my_computer/website/my_website,而服务的URL则是http:
//my_computer/servlet/com.esri.esrimap.Esrimap?
Service=my_service。
这个定义了服务的变量名为imsURL可以在参数文件中找到。
当我们在一台服务器上运行IMS服务,而在另一台服务器上运行HTML浏览器的时候,就需要按照下面的做法以避免JavaScript安全限制冲突的出现:
?
执行重定向任务——这个任务可以让IMS的应用服?
务器知道它使用了多个主机,?
主机的名?
称。
应用服?
务器可以将客户端的请求重新定向到合适的主机上。
你可以设置所有的主机都能够收到重新定向的请求。
当我们使用重新定向的时候,?
就不?
能使用Authentication。
我们可以通过修改IMS缺省的servlet连接器的属性使用另一台WEB服务器上的服务,连接器可以重定向指向servlet连接器的请求到另一台WEB服务器上。
如果需要重新定向,则需要寻找到Esrimap_prop文件(在\Connectors\Servlet文件夹中),并添加下面两句:
Redirect=true
Redirectablehosts=host1,host2,host3
保存文件,重新启动servletengine。
如果也许重定向到所有的主机,则为:
Redirectablehosts=*
?
使用JavaConnector——使用这个连接器可以让你避免执行重定向的任务,?
但它要求你安装JavaConnector。
你可以使用Java连接器的Authentication,?
但是必须自己编写代码。
使用JAVA连接器的主要目的是通过编写JSP页面或JAVA程序来与IMS服务交互,我们也可以将它使用到HTML浏览器上。
使用它可以避免改变属性,也可以阻止ArcMap的终端用户来获取我们的源数据。
一个ESRI的ArcMap程序可以重一个IMS服务上下载源数据。
为了避免这一点,我们可以在HTML浏览器上使用JAVA连接器。
使用JAVA连接器或其他的连接器可以让我们删除WEB服务器上的Servlet连接器。
在无法连接到IMS的ServletConnector的情况下,ArcMap用户不能接触到源数据。
如果你使用JAVA连接器而删除IMS的Servlet连接器,所有使用IMSServlet连接器的客户端,包括ArcMap、ArcPad和ArcExplorerjava,都不能再使用IMS的服务了。
缺省地,HTML浏览器是使用ServletConnetor作为连接器的。
定制HTML浏览器
ArcIMSparam.js是我们在定制HTML浏览器中使用的最重要的文件之一,也是初学者修改WEB站点所使用的第一个文件。
在这个文件中,包含了一个CheckParams函数,浏览器在启动后调用所有文件时使用这个函数,它用于检查已经存在的各种框架和函数文件,检查关键的变量和更新参数。
?
参数文件修改
1.返回单一值
VaronlyUniqueSample=true;
?
服?
务与地图布局
imsURL时主要地图显示的服务URL。
imsOWURL是为鸟瞰图显示中的服务的URL。
删除鸟瞰图:
在参数文件中设置hasOWMap=false;在MapFrame.htm文件中设置ovIsVisible=false
将鸟瞰图放到一个单独的框架中:
修改启动时地图的范围:
修改startLeft、startTop等四个属性。
在启动时显示图例而不是图层列表:
在参数文件中将showTOC=false;
在checkParams函数中添加:
legengdVisible=true;
appDir=getpath(document.location.pathname);
修改动画:
修改MapFrame.htm页面中修改loadingsplashs中的部分。
?
ActateLayer的修改
ActateLayer图层可以看作是放在地图上面的一个透明层。
这个图形显示了一些关于地图的辅助性信息。
HTML浏览器包含了多个ActateLayer,用于显示指南针、版权信息、比例尺等。
我们可以改变这些元素或添加新的元素。
隐藏图层列表上的图层
VarhideLayersFromList=true;
VarnoListLayer=newArray();//修改其中的某个数组,可以让图层在列表上不显示,但不影响实际地图显示效果。
改变指南针的属性
修改关于NorthArrowType、NorthArrowCoords、NorthArrowSize和NorthArrowAngle等属性。
修改版权信息属性
修改与CopyRight***有关的信息即可。
修改ScaleBar的属性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ArcSDE 服务 入门