平台软件:ARCIGS10.1 ,SQL Server2008R2

目的:了解客户端在连接arcgis 空间地理数据库后,地理数据库会做些什么样的初始化工作

准备工作:

1.准备好数据库日志文件查看工具,通过日志查看工具可以查看对数据库的详细加载过程,本文采用ApexSQL Log 2013工具,目前该工具有试用版,挺好用的。这个

工具可以用来做数据库恢复。

2.准备好一份空间数据库

前提条件:

1.本测试没有包含采用版本机制的情况

2.为了尽量保证测试的单纯性,数据库全部放在本地,没有其他任何人连接。

3.测试连接采用了winform的桌面客户端,没有测试WEB端或手机端的连接,这个以后再测。

步骤:

启动过程:


1.启动一个客户端,并连接地理数据库,通过ApexSQL Log分析数据库的.ldf文件,得出如下记录:(客户端登录连接时间为15:41分)

通过上述操作列表可以看出,地理数据库后台先后操作了SDE_object_ids、SDE_process_information、SDE_state_locks、SDE_table_locks四张表。分别执行Update与Insert操作,这些操作

可以理解为:创建连接——保存连接信息——初始化状态表——初始化要素加载表

这四张表在ARCGIS的帮助文档中可以看到其主要含义:(http://help.arcgis.com/zh-cn/arcgisserver/10.0/help/arcgis_server_java_help/index.html#//002p00000085000000

在本次测试中,当发生连接时这四张表的数据如下:

此处,数据库中插入的记录为:

可以看到类型为connection

这张表主要记录连接者的信息,在退出后,对应的记录将会被删除

数据库中的记录为:

可以看出四个地理要素都是共享模式(S)

通过registration_id字段,可以在sde_table_registry中查出初始化了哪些地理要素,在这里10,23,24,25都是对应的地理要素的ID

从这个表可以详细看出加载了哪些图层。

退出过程:


从退出来看,执行了逆向的删除操作,从表锁定记录中、状态记录中、客户端进程中删除已经断开的连接信息。

只有SDE_object_ids表中的数据没有删除,每次只执行了更新操作。

总结


通过对加载过程与退出过程的了解,知道了地理数据库的几张表的协同关系以及他们所起的作用。

ARCGIS10.1 GeoDatabase深入理解:客户端连接与退出地理数据库时系统表的初始化的更多相关文章

  1. Eureka 客户端连接Eureka服务端时 报Cannot execute request on any known server 解决办法

    报Cannot execute request on any known server 这个错,总的来说就是连接Eureka服务端地址不对. 因为配置eureka.client.serviceUrl. ...

  2. 一个I/O线程可以并发处理N个客户端连接和读写操作 I/O复用模型 基于Buf操作NIO可以读取任意位置的数据 Channel中读取数据到Buffer中或将数据 Buffer 中写入到 Channel 事件驱动消息通知观察者模式

    Tomcat那些事儿 https://mp.weixin.qq.com/s?__biz=MzI3MTEwODc5Ng==&mid=2650860016&idx=2&sn=549 ...

  3. WCF服务对于处理客户端连接的一点思考

    对于每个客户端的,服务端是否为每个客户端有专门的“通道”? 目的:想在服务端记录下来客户端的访问记录(进入.各个操作.离开等信息),并将其执行的操作独立记录在各个客户端对应的日志中. 下面是代码: 契 ...

  4. (4.2)SQL Server 客户端连接的问题

    转自:http://blog.51cto.com/jimshu/1395199 经常遇到 SQL Server 客户端无法连接到SQL Server 实例(服务).现在将这类问题归纳如下: 一.SQL ...

  5. Netty源码分析 (六)----- 客户端连接接入accept过程

    通读本文,你会了解到1.netty如何接受新的请求2.netty如何给新请求分配reactor线程3.netty如何给每个新连接增加ChannelHandler netty中的reactor线程 ne ...

  6. 高版本->低版本迁移,低版本客户端连接高版本数据库EXP导出报错EXP-00008,ORA-01455,EXP-00000

    生产环境: 源数据库:RHEL + Oracle 11.2.0.3 目标数据库:HP-UX + Oracle 10.2.0.4   需求:迁移部分表  11.2.0.3-->10.2.0.4,若 ...

  7. Redis客户端连接池

    使用场景 对于一些大对象,或者初始化过程较长的可复用的对象,我们如果每次都new对象出来,那么意味着会耗费大量的时间. 我们可以将这些对象缓存起来,当接口调用完毕后,不是销毁对象,当下次使用的时候,直 ...

  8. 【RabbitMQ】CentOS安装RabbitMQ,及简单的Java客户端连接

    在CentOS安装 因Rabbit MQ使用Erlang,所以需要先安装Erlang,安装过程中可能会遇到种种问题,可参考CentOS 6.5安装Erlang/OTP 17.0.然后就可以安装MQ了. ...

  9. redis客户端连接异常

    本文参考:http://mdba.cn/2015/04/02/redistwemproxy-%e5%ae%a2%e6%88%b7%e7%ab%af%e8%bf%9e%e6%8e%a5%e5%bc%82 ...

随机推荐

  1. Python字符转换

    Python提供了ord和chr两个内置的函数,用于字符与ASCII码之间的转换. 如:>>> print ord('a') 97 >>> print chr(97 ...

  2. Hibernate关联关系配置(一对多、一对一和多对多)

    第一种关联关系:一对多(多对一) "一对多"是最普遍的映射关系,简单来讲就如消费者与订单的关系. 一对多:从消费者角的度来说一个消费者可以有多个订单,即为一对多. 多对一:从订单的 ...

  3. JQuery学习(选择器-可见性-hidden)

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"% ...

  4. C++混合编程之idlcpp教程Python篇(3)

    上一篇 C++混合编程之idlcpp教程Python篇(2) 是一个 hello world 的例子,仅仅涉及了静态函数的调用.这一篇会有新的内容. 与PythonTutorial0相似,工程Pyth ...

  5. WPF快速入门系列(4)——深入解析WPF绑定

    一.引言 WPF绑定使得原本需要多行代码实现的功能,现在只需要简单的XAML代码就可以完成之前多行后台代码实现的功能.WPF绑定可以理解为一种关系,该关系告诉WPF从一个源对象提取一些信息,并将这些信 ...

  6. [游戏模版16] Win32 飞机射击 敌人追踪

    >_<:AI introduction. >_<:According the plane position (nowX,nowY) relative to birds' pos ...

  7. Gradle里配置jetty实现静态资源的热部署

    通过Gradle我们可以很方便的使用内置jetty启动我们的web程序,在本地进行调试.但是在使用的过程中,我发现了几个问题,导致本地调试的效率大受影响. 如果使用gradle jettyRun启动j ...

  8. Oracle中SQL的分类

    DDL 数据定义语言: 用于创建(create).修改(alter)或删除(drop)数据库对象. DML 数据操作语言: 添加(insert into).修改(update)和删除(delete)表 ...

  9. MyEclipse使用总结——MyEclipse文件查找技巧 ctrl+shift+R ctrl+H

    一.查找文件 使用快捷键[ctrl+shift+R]弹出弹出文件查找框,如下图所示: 二.查找包含某个字符串的文件 使用快捷键[ctrl+H]在弹出对话框中选File Search选项,然后在第一个文 ...

  10. 一些新的web性能优化技术

    1.IconFont:图标字体,这是近年来新流行的一种以字体代替图片的技术.它可以适应任何分辨率而不会出现图片模糊问题,与图片相比它具有更小的容量,更高的灵活性(像字体一样可以设置图标大小.颜色.透明 ...