giomgr.defs 文件和 SERVER_CONFIG 系统表
SDEHOME 的 etc 目录中的 giomgr.defs 文件内包含着用于填充 SERVER_CONFIG 表(SQL Server 和 PostgreSQL 中的 sde_server_config)的数据。创建 SERVER_CONFIG 资料档案库表时会读取该文件,这发生在创建 ArcSDE 地理数据库时。
SERVER_CONFIG 表中包含用于定义 ArcSDE 如何使用内存的初始化参数和值。只要 SERVER_CONFIG 表存在,就会从该表中读取参数而不会从 giomgr.defs 文件中读取参数。参数在本主题的“ArcSDE 初始化参数”部分中列出。
除了可以调整 Windows 安装的 TEMP 位置以及 MINBUFFSIZE 和 MAXBUFFSIZE 以提高数据加载性能之外,SERVER_CONFIG 表中的大部分初始化参数都不需要更改它们的默认设置。有关如何设置这些参数的信息,请参阅缓冲区大小初始化参数。
ArcSDE 所使用的 TEMP 参数用于指定临时磁盘空间目录,该目录用于存储超出 SERVER_CONFIG BLOBMEM 参数所指定大小的属性二进制大对象 (BLOB)。如果不设置 TEMP 参数,将指定一个默认位置。Windows 上的默认位置为当前登录到 Windows 计算机的用户的临时文件夹。要为该临时存储设置其他目录,您必须在运行“安装后设置”之前取消 giomgr.defs 文件中 TEMP 参数的注释,或者在创建地理数据库之后使用 sdeconfig –o alter 命令更改 TEMP 目录值。以下段落将讨论这两种情况。
要在创建 ArcSDE 地理数据库之前更改服务器初始化参数,请参阅创建地理数据库 (geodatabase) 之前更改各 SERVER_CONFIG 参数。
要在创建 ArcSDE 地理数据库之后更改服务器初始化参数,请使用 sdeconfig 管理命令。在 Windows 中,这基本上与您更改初始化参数值的方式类似,这是因为 ArcSDE 安装和“安装后设置”向导通常是按顺序运行的。要在创建地理数据库之前更改参数,必须在安装完 ArcSDE 组件之后退出安装向导并更改 giomgr.defs 文件,然后重新打开“安装后配置”向导。
有关如何用 sdeconfig 命令更改 SERVER_CONFIG 表中的值的信息,请参阅在创建地理数据库 (geodatabase) 之后更改 SERVER_CONFIG 参数,并查阅随 ArcGIS Server Enterprise 提供的《管理命令参考》。
ArcSDE 初始化参数
为了便于您参考,现将每个 ArcSDE 初始化参数的操作和默认设置以及注释或警告描述于下表中。
参数 |
描述 |
默认 |
注释 |
---|---|---|---|
ALLOWSESSIONLOGFILE |
如果希望用户能够使用基于会话的 ArcSDE 日志文件,请将此参数设置为 TRUE。对于在较长的一段时间内仍然保持与 ArcSDE 的连接以及选择许多记录的应用程序来说,会对基于会话的日志文件进行优化。 |
DB2、Informix、Oracle 和 PostgreSQL = FALSE SQL Server = TRUE | |
ATTRBUFSIZE |
属性矩阵缓冲区的大小 |
50,000 个字节(100 行,每行 500 个字节的属性数据) |
如果可被提取到属性缓冲区的行数与 MAXARRAYSIZE 参数设置不匹配,性能会受到影响。 对于涉及多列的查询,添加每列的字节数以获得总的行大小。ATTRBUFSIZE 除以行大小不能超过 MAXARRAYSIZE 所指定的行数。ArcSDE 会自动减小属性缓冲区的大小以保留 MAXARRAYSIZE 行。 |
AUTOCOMMIT |
这是事务中隐式 ArcSDE 用户自动提交率。如果将 AUTOCOMMIT 设置为 0,则仅当应用程序发出显式提交时事务才会提交。如果将它设置为大于 0 的值,则操作会在达到所指定的更新次数之后提交。(例如,对于默认设置,事务提交会发生在 1,000 次更新之后。)这一功能可以防止事务变得过大或超出数据库管理系统 (DBMS) 日志。 |
1,000 | |
AUTH_KEY |
经过加密的许可密钥代码 |
没有默认值 |
该值是在安装过程中指定的;不能更改 SERVER_CONFIG 表或 giomgr.defs 文件中的该值。 |
BLOBMEM |
存储 BLOB 时,服务器必须累计应用程序通过网络发送的 BLOB 区段。如果 BLOB 大小大于 BLOBMEM,则服务器会在将 BLOB 数据存储到数据库中之前将其写入到磁盘文件。如果 BLOB 大小小于 BLOBMEM,则服务器会将 BLOB 累计到内存中。如果 BLOBMEM 是负数,则服务器始终都会使用内存,而不会考虑 BLOB 大小。 |
1,000,000 | |
CONNECTIONS |
应用程序服务器所接受的最大同步连接数。 要使对该参数所做的更改生效,必须重新启动 ArcSDE 服务。 |
48 |
在 ArcSDE 9 及更高版本中,该参数还将限制直接连接的数量。因此,两层连接和三层连接的总数不能超过该参数值。 |
DEFAULTPRECISION |
可将该参数设置为 32 位整型精度。使用默认值 64 位创建的空间列将存储 64 位几何。 |
64 位整型 |
默认情况下,在 ArcSDE 9.2 或更高版本的新安装中,该参数将被设置为 64 位整数。 |
DISABLEDC |
如果设置为 TRUE,将禁用描述缓存;如果设置为 FALSE,将启用描述缓存。 |
FALSE |
建议使用默认设置,即启用描述缓存。只有在使用选择列表中的内联函数或聚合函数时遇到结构化查询语言 (SQL) 语法错误的情况下,才应将该值更改为 TRUE。 |
DISABLEAUTOREG |
禁用包含空间列(通过对象关系数据类型创建)的业务表的自动注册功能 启动 ArcSDE 服务时,ArcSDE 服务会扫描系统表以查找可能存在于数据库中的所有未注册的空间列并注册这些空间列。将 DISABLEAUTOREG 设置为 FALSE 可启用该功能。 |
TRUE |
DB2 Spatial Extender、Informix Spatial DataBlade 和 Oracle Spatial 几何存储类型都具有该功能。而 SQL Server 或 PostgreSQL 中的地理数据库则不具有该功能。 |
ERRLOGMODE |
确定在错误被写入到 ArcSDE 错误日志文件中时是否随每个错误记录时间戳、会话 ID 和客户端计算机名称。如果要限制随错误包含的项目,可将该参数设置为这些项目的字母。(请参见默认列表。)如果不想随错误包含这些项目,可将该参数设置为 NONE。 |
默认情况下,该参数将被设置为 TIC。T - 时间戳;I - 会话 ID;C - 客户端计算机 | |
HOLDLOGPOOLTABLES |
默认情况下,该参数设置为 TRUE,这表明 ArcSDE 在断开连接之前会保留和重新使用已从会话日志文件池中检出的所有基于会话的日志文件表。如果设置为 FALSE,则 ArcSDE 客户端应用程序会在删除日志文件时将日志文件释放到池中。 |
TRUE |
在大多数情况下,应将此设置保留为 TRUE。 |
INT64TYPES |
如果要禁用 64 位整型(应用程序不支持 64 位整型时需要这样做),可将该参数的设置保留为 FALSE(默认设置)。如果设置为 FALSE,ArcSDE 会将 64 位整型字段作为双精度字段返回并且不允许创建 64 位整型字段。如果将该参数设置为 TRUE,则可以使用 64 位整型属性列。 |
FALSE |
如果应用程序不支持 64 位整型,则必须将该参数设置为 FALSE。 |
LARGEIDBLOCK |
在计算 ArcSDE 分配给缓冲数据流的行 ID 值的数量时,会使用该参数的值。 当 ArcSDE 检测到缓冲数据流正在尝试将大量的记录加载到表中时,ArcSDE 会计算要作为该参数的最小值(即当前行 ID 分配的两倍)分配的行 ID 数量。行 ID 分配最初会被设置为 SMALLIDBLOCK 的值,并且在达到 LARGEIDBLOCK 之前大小为两倍。 |
0 | |
LAYERAUTOLOCKING |
对于 ArcSDE 9,默认情况下图层自动锁定功能已被禁用。可通过将服务器配置参数 LAYERAUTOLOCKING 设置为 TRUE 来启用图层自动锁定功能,在这种情况下,启用了自动锁定属性的图层将在于 NORMAL_IO 模式中编辑图层时自动锁定形状。 因此,LAYERAUTOLOCKING 参数与主开关类似;一旦将 LAYERAUTOLOCKING 更改为 TRUE,则所有启用了自动锁定属性的图层都将在于 NORMAL_IO 模式中进行编辑时自动锁定形状。 默认情况下,创建图层时会启用自动锁定属性。(可通过 sdelayer –o describe_long 命令来查看图层的自动锁定状态。)要禁用特定图层的自动锁定功能,可使用 administration 命令的 alter 操作。 |
ArcSDE 9 = FALSE;ArcSDE 9 之前的版本 = TRUE |
添加此参数是为了向后(9 之前的版本)兼容,以允许用户可以继续使用自动锁定功能(例如,有依赖于自动锁定功能的自定义应用程序的那些用户)。 |
LOGFILEPOOLSIZE |
该参数指定基于会话的日志文件池的大小。默认情况下,该参数被设置为 0,该参数表示由 ArcSDE 管理员所拥有并在用户之间共享的日志文件表的数量。用户可以从池中检出日志文件表而不必创建自己的日志文件表。 |
0 |
从 ArcSDE 9 开始,该参数取代了 SESSIONLOGPOOLSIZE。如果不想使用日志文件池,请将该参数设置为 0。 |
MAXARRAYBYTES |
这是分配给每个数据流的最大数组字节数。它用于管理服务器上数组缓冲区的内存分配。 |
550,000 |
ATTRBUFSIZE 和 SHAPEPTSBUFSIZE 的总和必须小于或等于 MAXARRAYBYTES。否则,将无法启动 ArcSDE 服务。如果出现这一问题,请增大 MAXARRAYBYTES,或者减小 ATTRBUFSIZE 或 SHAPEPTSBUFSIZE。 该值不能使用 SE_connection_set_stream_spec 函数进行更改,它只能由 ArcSDE 管理员在 SERVER_CONFIG 表中进行更改。 |
MAXARRAYSIZE |
每次请求中服务器所能提取的最大行数 |
100 |
最佳值在 20 到 150 之间,具体取决于使用的平台和 DBMS。正确地调整了形状点数据 (SHAPEPTSBUFSIZE) 和属性缓冲区 (ATTRBUFSIZE) 之后,可尝试几个数组大小以确定安装的最佳设置。 |
MAXBLOBSIZE |
用户定义的 BLOB 的最大大小(以字节为单位) |
-1 (SE_UNLIMITED_BLOBSIZE) |
从 ArcGIS 10 开始,该参数设置为 -1 (SE_UNLIMITED_BLOBSIZE)。所有新的和升级的地理数据库都将被设置为无限制。 |
MAXBUFSIZE |
这是最大缓冲区阈值。最小值为 12,288 (12 KB)。 |
64 KB |
如果 MAXBUFSIZE 值大于 12 KB 但小于 MINBUFSIZE,则会调换 MAXBUFSIZE 和 MINBUFSIZE 值。有关详细信息,请参阅缓冲区大小初始化参数。 |
MAXDISTINCT |
该参数用于控制由 SE_table_calculate_stats 或 SE_stream_calculate_table_statistics 调用中的 SE_DISTINCT_STATS 统计所返回相异值的最大数目。值为 0 表示可以返回无限多个相异值。 |
512 |
如果列表是完整的,则会在服务器的内存中生成相异值并将它们传递到客户端的内存中。 计算大型表的统计数据可能会给客户端和服务器资源带来威胁。如果将该值设置得足够大,则可以完成大多数的查询任务;但是,也不能将该值设置得过大,以致于服务器或客户端应用程序出现内存不足。如果用户接收到错误消息 SE_TOO_MANY_DISTINCTS,则可以增大 MAXDISTINCT 参数,但是应谨慎进行这一操作,因为它可能会影响客户端和服务器内存。最好检查一下应用程序以确定是否可以更有效地执行查询。 |
MAXINITIALFEATS |
该参数用于指定 sdelayer 管理工具和 SE_layer_create 函数的初始要素参数中所允许的最大要素数。该参数可以防止无意中创建初始范围过大的要素类。 |
10,000 |
这是一个仅适用于 ArcSDE for Oracle 的参数。 |
MAXGRIDSPERFEAT |
指定空间索引中每个要素的最大格网数 |
8,000 |
不能将该参数设置为 1,000 以下。 该参数仅适用于使用格网索引的空间存储类型。 |
MAXSTANDALONELOGS |
允许用户创建的独立日志文件表的最大数量 |
0 |
如果使用日志文件配置而不使用独立的日志文件表,请将该参数的设置保留为 0。 |
MAXTIMEDIFF |
以秒为单位指定的 MAXTIMEDIFF 是服务器计算机和客户端计算机系统时钟之间的最大允许时间差。 它可以防止可能已经捕获了包含 ArcSDE 连接字符串的网络包的某个用户进行未经授权的访问。当该用户尝试重新发送网络包时,如果捕获与重新发送网络包之间的时间超出了 MAXTIMEDIFF 设置,该操作将被拒绝。 |
1,800 秒 |
该参数不会限制直接连接。将该参数设置为 -1 可禁用它。如果在进行合法连接时收到错误消息 -99“接收到的密码是在 7 MAXTIMEDIFF 秒之前发送的”,请将客户端计算机的系统时间重置为主机的系统时间。 |
MINBUFOBJECTS |
传输缓冲区中的最小缓冲区对象(行)数 |
512 行 |
MINBUFOBJECTS 取决于一行数据的大小(字节数)。有关详细信息,请参阅缓冲区大小初始化参数。 |
MINBUFSIZE |
最小缓冲区阈值;最小值为 4 KB。 |
16 KB |
如果将 MINBUFSIZE 设置得过高,会增加等待时间;因此,请将 MINBUFSIZE 设置为不超过 MAXBUFSIZE 的一半。有关详细信息,请参阅缓冲区大小初始化参数。 |
PRECISION10 |
对于 ArcSDE for Oracle 而言,将该参数设置为 TRUE 会将长整型值的解释精度从 9 个字节提高到 10 个字节。对于 ArcSDE 8.1,会将长整型值缩短为 9 个字节(出于缺陷修复的目的)。但是,这会影响对历史遗留数据的存储,因为这种数据要求将长整型值解释为 10 个字节。 |
FALSE |
除非在使用 ArcSDE 8.1 之前版本创建的历史遗留数据时遇到问题,否则请不要更改该参数的设置。 |
PROCSTATS |
进程统计参数用于控制会话更新 PROCESS_INFORMATION 表的时间间隔。默认情况下,该参数设置为 -1,这表示不向 PROCESS_INFORMATION 表更新条目。要启用条目,请将该参数设置为反映以秒为单位的时间间隔(会话将统计数据写入到表中的时间间隔)的正整数。 时间间隔表示的是会话最近一次写入统计数据之前必须经过的时间。会话只会在发生更改时写入统计数据。 |
-1 |
将统计数据写入到 PROCESS_INFORMATION 表成本较高,应尽量避免。 |
RASTERBUFSIZE |
该参数用于定义栅格缓冲区的大小,而栅格缓冲区的大小控制着栅格数据的转换。 栅格转换包括数组缓冲区和传输缓冲区。栅格数组缓冲区被设置为 RASTERBUFSIZE 参数的两倍,而栅格传输缓冲区被设置为 RASTERBUFSIZE。因此,分配给服务器上的栅格转换的内存是 RASTERBUFSIZE 的三倍。 在客户端,当通过流访问栅格分块时,系统会将 RASTERBUFSIZE 字节的内存分配给客户端栅格传输缓冲区。直到流被关闭时才会取消分配栅格缓冲区,除非流被添加到流池。(请参见 STREAMPOOLSIZE。) |
204,800 字节 |
该值以字节为单位指定并且必须足够大以便能存储所访问的最大栅格分块。如果栅格分块不适用于传输缓冲区,则会返回 SE_RASTERBUFFER_TOO_SMALL 错误。 如果内存比较紧张,请指定一个更小的分块大小而不要增大 RASTERBUFSIZE。 计算每个像素的字节数时必须考虑像素深度。 示例:图像像素深度=64 位,分块大小=128 * 128,所需的 RASTERBUFSIZE=131,072 字节 (128 * 128 * 8);图像像素深度=8 位,分块大小=256 * 256,所需的 RASTERBUFSIZE=65,536 字节 (256 * 256 * 1) 对于 ArcSDE 9.2 及更高版本,ArcSDE 栅格数据的吞吐量会被编入线程以更好地利用服务器的处理能力。此外,还会使用多个内存缓冲区。因此,将 RASTERBUFSIZE 参数设置为不大于 1 MB 是非常重要的。 |
READONLY |
该参数用于允许或不允许由 ArcSDE 客户端对地理数据库进行编辑。如果设置为 TRUE,则 ArcSDE 服务不允许由 ArcSDE 客户端执行编辑操作。 |
FALSE |
FALSE = 允许编辑 TRUE = 只读连接 |
SHAPEPTSBUFSIZE |
这是形状“点”数组缓冲区的大小。 |
400,000 |
对于包含 500 个点的二维区域要素,会计算默认值 (400,000)。 |
SMALLIDBLOCK |
该参数的值用于计算 ArcSDE 分配给流的最小行 ID 数。 |
16 | |
STATEAUTOLOCKING |
该参数用于禁用或启用状态的自动锁定功能。 |
FALSE(禁用状态的自动锁定功能) |
除非第三方应用程序(即不是由 ESRI 创建的应用程序)正在编辑状态,否则不应将该参数设置为 TRUE,因为这样做会降低系统的总体性能。 |
STATECACHING |
如果将状态缓存设置为 TRUE,则会在服务器上的内存中保存每个流的状态。如果设置为 FALSE,则必须从磁盘中读取每个流操作的状态。 应该对常用的流操作进行缓存以获得最佳的性能。 |
TRUE | |
STATUS |
如果该实例正在接受新连接,则值为 1;如果该实例已暂停(即不接受新连接),则值为 2。 |
1 |
该参数既适用于 ArcSDE 服务,也适用于直接连接。 |
STREAMPOOLSIZE |
这是添加到流池的已分配流资源的最大数量。 只要创建新的流,就会重新使用流池的资源。已释放流的资源会被添加到流池中,直到超出 STREAMPOOLSIZE 的值。如果在释放流时流池已满,将取消分配流池中的资源。 |
6 |
如果将 STREAMPOOLSIZE 设置为 0,则不会创建已释放流资源池。 |
TCPKEEPALIVE |
如果将 TCPKEEPALIVE 设置为 TRUE,则允许 ArcSDE 服务(应用程序服务器)使用当前系统的 TCP/IP KEEPALIVE 设置。随后,ArcSDE 服务可以检测其计算机已经崩溃或已被 Windows 任务管理器(或 UNIX 删除命令)有意终止的客户端。 如果 TCPKEEPALIVE 的设置为 TRUE,则会开启一种调查模式,在该模式中,在经过操作系统保持活动状态的间隔指定的一段空闲时间后,将会通过该空闲连接发送一个数据包以查看另一端的情况。如果未收到响应,则在确定客户端不再存在并终止应用程序连接之前,可能需要根据操作系统的保持活动状态配置重新发送另一些数据包。TCPKEEPALIVE 不会断开有效的连接,即使这些连接已经处于空闲状态超过两个小时。它只会断开已被终止或已崩溃的应用程序连接。 仅当重新启动 ArcSDE 服务后,对 TCPKEEPALIVE 参数所做的更改才会生效。 可使用 sdemon -o info -I config 命令来确定应用程序服务器上该参数的设置。 有关更改保持活动状态配置的详细信息,请参阅操作系统文档。 |
FALSE |
如果将 TCPKEEPALIVE 设置为 TRUE,则短期(10 分钟以内)的网络故障就会触发断开连接。TCPKEEPALIVE 不会断开直接连接。 系统的 TCP/IP KEEPALIVE 设置是系统范围的设置并且会影响运行在 TCP/IP 环境中的所有应用程序服务器进程。 |
TEMP |
用于指定临时磁盘空间目录的完整路径;存储在 TEMP 文件中的内容包括日志文件(如果 SDEHOME 下没有 etc 目录)以及设置 gsrvr 进程的已命名管线时所使用的临时文件等。 |
系统临时目录的完整路径(例如,c:\documents and settings\username\local settings\temp) |
如果未在创建地理数据库(在 Windows 上)之前于 giomgr.defs 文件中设置该参数,则会在安装过程中发出一条警告消息,同时指定一个默认位置。Windows 上的该默认位置为当前 Windows 用户的临时文件夹。对于 UNIX,该默认位置为 \temp。 |
TLMINTERVAL |
最近一次修改的时间间隔 (TLMINTERVAL) 是在 ArcSDE 再次查询 TABLES_MODIFIED(在 SQL Server 和 PostgreSQL 数据库中为 SDE_TABLES_MODIFIED)ArcSDE 系统表以确定是否已对任何其他 ArcSDE 表做出更改之前必须经过的秒数。 |
1 秒 |
如果 ArcSDE 元数据不会发生改变(换句话说,如果不会添加、移除或更改图层、栅格列或 XML 列或更改业务表的注册信息),则可以将该参数设置得比默认值大以避免查询 TABLES_MODIFIED 表的开销。 |
TRIMLOCKINGTYPE |
TRIMLOCKINGTYPE 用于定义是否在压缩操作过程中或者在更新或删除版本化行时对版本化表的 D(删除)表执行显式表锁定。默认情况下,将启用显式表锁定。可能的值如下:
|
ONLY DURING COMPRESS |
该参数仅适用于 ArcSDE for Oracle。存储在表中的代码是:1 = 从不;2 = 总是;3 = 仅在压缩过程中 |