SDE作为一种Windows Service,在启动的时候是需要一些基本配置参数的。它的参数文件包括两个,即dbinit.sdeservice.sde,前者记录了该sde所依赖的DBMS,后者记录了服务名和端口号,如esri_sde 5151/tcp的信息。这两个文件都保存在<SDEHOME>/etc中。尽管如此,在windows系统中,SDE服务的启动其实并不依赖于这两个文件,而是使用注册表的信息,我们打开[HKEY_LOCAL_MACHINE]/[SOFTWARE]/[ESRI]/[ARCINFO]/[ARCSDE/[ARCSDE for Oracle]/esri_sde即可。
SDE在寻找到DBMS和端口后,就会在DBMSService_config表中寻找相应的记录来初始化服务。我们来看看这些参数:
  • ReadOnly 参数表是否以只读模式被访问,默认为否
  • CONNECTIONS最大连接数,即最大连接SDE的用户数量,在Windows上为48个
  • TEMP,SDE访问时产生的临时文件存放地点
  • TCPKEEPALIVE,这是一个系统级别的参数,如果设置为true,则所有使用TCP的服务都会每两个钟头去自动检查连接状态,可能会引起短暂的网络溢出现象
  • MAXBUFSIZE 最大缓冲值,由于SDE的数据不是直接发送,而是通过缓冲的方式送出,因此必须精确调整好这个值,如果值过大,MAXBUFSIZE*用户数>物理内存,将降低系统的性能
  • MINBUFSIZE 最小缓冲值,不要超过最大值的一般,一般1/3为佳,否则数据只有达到最小值才发送,会增加反应时间
  • MINBUFOBJCTS最小记录条数
  • SDE与DBMS之间(除了ACCESS),是通过一种被称为Array Buffer的机制来实现数据传输的,这也是一种缓冲器,我们是先通过这种机制将数据传送给SDE,SDE再使用自己的缓冲机制将数据发送到客户端,因此这是两种不同的缓冲器。MAXARRAYSIZE,即每次取出的记录条数、MAXARRAYBYTES,即每次取出的记录总容量,SHAPEPTSBUFSIZE,这些记录中几何数据的最大容量,ATTRBUFSIZE即属性的最大容量。
    使用Array Buffer的方式传递Geometry分为两部分,即要素的metadata和point data,前者包括要素的ID,点的数量,实体类型;后者是储存点的实际空间。[SDE中几何对象都是使用有序点集和实体曲线来存储的]
    这些数据的取值都是需要进行计算的,如果SHAPEPTSBUFSIZE=400000,而MAXARRAYSIZE=100条记录,则每条记录的SHAPE值容量最大为4000bytes,则其构成要素的点最多为4000/16=250,如果有要素的点超过250,则不会被取出。如果该要素还有Z值或M值,则为4000/24,如果同时具有M和Z值,则为4000/32=125。