服务配置文件

针对各配置的服务配置的属性以文件形式保存在 GIS 服务器的 cfg 目录中。向 GIS 服务器添加新服务配置时,会自动创建新配置文件。当删除某个配置时,对应的配置文件也会从 cfg 目录中删除。

服务配置文件的名称按照以下方式命名:<配置名称>.<服务类型>.cfg。例如,地图服务 Redlands 的服务配置文件名称为 Redlands.MapServer.cfg。

可通过在 cfg 目录中手动创建配置文件来向 GIS 服务器添加配置,也可通过从 cfg 目录中删除配置文件来删除配置。这两种情况下,在服务器对象管理器 (SOM) 重新启动前,新的或已删除的配置将不会被服务器识别。如果 SOM 遇到已损坏的配置文件,则 SOM 会记录警告并忽略此配置。

警告警告:

必须在对服务配置文件进行手动更改之前停止“ArcGIS Server 对象管理器”服务。

服务配置标记

以下是服务配置文件中的标记、标记含义以及示例值:

<Description>

一个可选字符串,用于描述服务配置。

<Properties>

服务配置的属性列表。子标记是特定于服务配置类型的属性。

下表列出了各服务类型所支持的 <Properties> 子标记(GeometryServer 不支持任何子标记)。表格之后的内容是按照字母顺序排列的对各标记的描述。

GeocodeServer

GeodataServer

GlobeServer

GPServer

ImageServer

MapServer

Locator

FilePath

FilePath

MapFile

Path

FilePath

LocatorWorkspacePath

OutputDir

MaxRecordCount

DataFrame

ServiceDefinition

FileName

LocatorWorkspaceConnectionString

VirtualOutputDir

MaxBufferCount

Toolbox

OutputDir

OutputDir

SuggestedBatchSize

MaxRecordCount

CacheDir

JobsDirectory

VirtualOutputDir

VirtualOutputDir

MaxBatchSize

ConnectionCheckInterval

SOMCacheDir

JobsVirtualDirectory

ServiceURL

SupportedImageReturnTypes

MaxResultSize

ClientCachingAllowed

ExecutionType

MaxImageHeight

ConnectionCheckInterval

ConnectionCheckInterval

OutputDir

MaxRecordCount

VirtualOutputDir

MaxBufferCount

MaximumRecords

MaxImageWidth

LocalJobsDir

IsCached

ShowMessages

CacheOnDemand

IgnoreCache

ClientCachingAllowed

CacheDir

SOMCacheDir

ConnectionCheckInterval

SchemaLockingEnabled

UseLocalCacheDir

MaxDomainCodeCount

<CacheDir>

MapServer 和 GlobeServer

此字符串中的路径指向文件系统中储存地图或 globe 缓存的位置。对于 globe 服务,该路径应该始终以 \GlobeCache 结尾(在 Windows 中)或始终以 /GlobeCache 结尾(在 Linux/Solaris 中)

<CacheOnDemand>

MapServer

一个布尔标记,用于指定在用户导航地图时是否根据需要创建缓存切片并将缓存切片添加至服务器缓存目录中。值为 true 时表示将根据需要添加切片。默认值为 false

了解有关按需缓存的详细信息

<ClientCachingAllowed>

MapServer 和 GlobeServer

一个布尔标记,用于指定客户端应用程序是否可以由此服务本地缓存切片。默认值为 true。如果需要频繁更新缓存,并且希望客户端无需清除缓存便可查看更新内容,则请将该值设置为 false

<ConnectionCheckInterval>

GeocodeServer、GeodataServer、GlobeServer 和 MapServer

一个整数,用于表示对参与服务的 ArcSDE 数据连接进行有效性检查(如果必要的话,可以是修复)的间隔秒数。默认情况下,在 .cfg 文件中不包含此属性,并且间隔时间为 300 秒。可向 .cfg 文件添加此标记以修改间隔时间。

虽然通常来说,默认的间隔时间已足够使用,但如果工作空间的运行不可靠或不稳定,则可设置更低值(如 60 或 120)。请勿设置过低的值,因为频繁检查会降低性能。

要禁用连接检查,请将此值设置为 0

为了触发检查,即使已经过了在 ConnectionCheckInterval 中定义的间隔时间,客户端仍然需要向服务实例发出请求。因此,ConnectionCheckInterval 无法对空闲服务中的数据连接进行验证。要检查空闲服务,请使用 ServiceKeepAliveInterval。

<DataFrame>

GPServer

一个字符串,用来表示包含有与地理处理服务关联的工具图层的数据框的名称。当地理处理服务只与工具箱关联时,不会使用此标记。

<ExecutionType>

GPServer

一个字符串,用来指示地理处理作业是以同步方式还是异步方式运行。

<FileName>

MapServer

一个字符串,用来表示参与服务的地图服务定义 (MSD) 文件的名称。该标记仅当地图服务是在 ArcMap 中通过“地图服务发布”工具条发布时才使用。它只包含 MSD 文件的名称,并且假定 MSD 位于服务器输入目录(默认情况下为 c:\arcgisserver\arcgisinput)中。

<FilePath>

MapServer、GeodataServer 和 GlobeServer

一个字符串,用来表示到达使用服务配置的文档的路径。对于 GeodataServer,其值为到包含 .sde 连接信息的 .sde 文件的路径,或者它还可以表示到个人地理数据库的路径。

<IgnoreCache>

MapServer

一个布尔标记,用于指定是否应该使用缓存。值为 true 表示将动态渲染地图,而不使用缓存。如果先前已创建了缓存,但之后更改过地图,并且希望用户能够即刻查看到编辑内容,则可使用此设置。此外,应用此设置还可在更新或重新创建缓存之前查看服务的影响。

当将此标记设置为 true 时,由于服务器必须针对各请求绘制地图,因此性能会降低。

<IsCached>

MapServer

一个布尔标记,用来指定服务在磁盘上是否存在预渲染切片的缓存。如果已定义了切片方案和缓存目录,则此服务将被视为已缓存。在创建缓存之前服务不存在缓存,因此默认情况下,该标记为 false

<JobsDirectory>

GPServer

一个字符串,用来表示到与服务关联的服务器作业目录的路径。地理处理服务会使用作业目录写入临时和输出数据。

<JobsVirtualDirectory>

GPServer

一个字符串,用来表示指向在 <JobsDirectory> 标记中指定的物理位置的虚拟目录的 URL。

<LocalJobsDir>

GPServer

一个布尔属性,用来指定在处理作业时地理处理服务是否会将临时工作空间写入服务器对象容器 (SOC) 上的本地系统 TEMP 目录中。默认情况下,该标记不可见,并且其值为 false

当临时工作空间位于本地路径时,地理处理服务会执行得更快。在分布式安装的 ArcGIS Server 中(也就是使用多台 SOC 机器的安装方式),通过授予 SOC 帐户对您系统 TEMP 目录的的权限并选择使用本地作业目录,可提高性能。

执行后,临时工作空间将从 TEMP 目录中复制到 JobsDirectory 中,此位置可被所有客户端访问。

<Locator>

GeocodeServer

一个字符串,用来表示 GeocodeServer 的地址定位器名称。

<LocatorWorkspaceConnectionString>

GeocodeServer

一个字符串,其中包含了到存储在地理数据库中定位器的连接的参数。

<LocatorWorkspacePath>

GeocodeServer

一个基于文件的定位器的必需字符串,表示到磁盘上的定位器文件存储位置的路径。

<MapFile>

GPServer

一个字符串,表示到达包含有与地理处理服务关联的工具图层的地图文档的路径。当地理处理服务只与工具箱关联时,不会使用此标记。

<MaxBatchSize>

GeocodeServer

一个整数,用来表示由 GeocodeServer 中的 FindAddressCandidates 方式返回的最大结果记录数。

<MaxBufferCount>

MapServer 和 GlobeServer

一个整数,用来表示在绘制期间每张图层上可由服务进行缓冲的最大要素数。

<MaxDomainCodeCount>

MapServer

一个整数,用来表示可从地图服务的所有字段、子类型和表中返回的最大域代码数。默认情况下,在.cfg 文件中不包含此属性,并且其默认值为 25,000。可向 .cfg 文件添加此标记以修改该值。

在大型多用户地图服务中,例如在线企业资源规划 (EPR) 系统,<MaxDomainCodeCount> 属性返回的域代码数量可能会超过默认值。如果发生这种情况,该服务将继续正常运行,但 MapServer 将丢弃所有域以保持服务器性能。此外,描述该事件的错误内容将记录到服务器的活动日志中。在地图服务中,如果需要 MapServer 返回的域代码数量超过默认值,请将 <MaxDomainCodeCount> 属性添加到 .cfg 文件中并指定所需的默认值。请注意,如果要求 MapServer 返回的域代码数量超过了 25,000 个,那么地图服务的性能将会受到影响。

<MaxImageHeight>

MapServer

一个整数,用来表示地图服务将导出的图像的最大高度(以像素为单位)。默认值为 2048

<MaxImageWidth>

MapServer

一个整数,用来表示地图服务将导出的图像的最大宽度(以像素为单位)。默认值为 2048

<MaximumRecords>

GPServer

一个整数,用来表示将由地理处理作业返回的最大记录数。

<MaxRecordCount>

MapServer、GeodataServer 和 GlobeServer

一个整数,用来表示可由地图或 globe 服务中的查询、查找、和识别操作返回的,或者由地理数据服务中的 TableSearch 方法返回的最大结果记录数。

<MaxResultSize>

GeocodeServer

一个整数,用来表示由 GeocodeServer 中的 FindAddressCandidates 方式返回的最大结果记录数。

<OutputDir>

MapServer、GeodataServer、GPServer 和 ImageServer

一个字符串,用来表示文件系统中服务将写入输出的路径。在创建新服务配置时,会从指定的服务器输出目录路径中复制该属性。如果希望通过 GIS 服务器清理服务的输出,则该路径应该是到服务器输出目录的路径。

<Path>

ImageServer

一个字符串,用来表示到达使用服务配置的数据的路径。

<SchemaLockingEnabled>

MapServer

一个布尔标记,决定地图服务是否将获得来自地理数据库的地图图层的方案锁。默认情况下,会获得该锁,因此该属性为 true。如果此锁妨碍了您的工作流,则可添加此标记,并将其设置为 false 禁用方案锁。

在禁用方案锁时请谨慎操作。如果未获得方案锁,其他用户将能够更改数据集的方案,这会对使用地图服务的用户产生难以预料的影响。应当仅在工作流明确要求禁用方案锁时才禁用方案锁。

默认情况下,在服务配置文件中不包含 <SchemaLockingEnabled> 标记。如果需要禁用方案锁,则必须显式添加该标记,并将其设置为 false

<ShowMessages>

GPServer

一个布尔标记,用来表示服务是否会从地理处理操作中返回错误、警告和通知消息。消息有助于开发和调试,但在消息中可能会包含路径名称以及您不希望在公开服务中显示的其他敏感信息。默认值为 false

<ServiceDefinition>

ImageServer

一个字符串,用来表示图像服务的源图像服务定义文件的路径。仅当从图像服务定义文件 (.ISCDef) 执行发布时才包含此标记。

<ServiceURL>

ImageServer

一个字符串,用来表示位于 Image Server 中的服务(仅涉及由图像服务定义文件 [.ISCdef] 发布的图像服务)的 URL。

<SOMCacheDir>

MapServer 和 GlobeServer

一个字符串,用来表示服务所使用的服务器缓存目录的路径。请注意:该标记中仅包含缓存目录的路径;而到该缓存的完整路径在 <CacheDir> 标记中指定。

<SuggestedBatchSize>

GeocodeServer

一个整数,用来表示一次批量地理编码中将被定位的记录数。

<SupportedImageReturnTypes>

MapServer

可能值为 MIMEURL。用于指定图像是以 MIME 数据的形式返回还是被写入磁盘中 (MIME + URL)。如果选择 URL,则必须存在为配置指定的服务器输出目录。

<Toolbox>

GPServer

一个字符串,用来表示与地理处理服务关联的工具箱的路径。当地理处理服务与地图文档中的某个工具图层关联时,不会使用此标记。这时,将使用 <MapFile> 和 <DataFrame> 标记。

<UseLocalCacheDir>

一个布尔标记,用来定义 ArcGIS Server 地图缓存机制是否将包文件写入本地目录,然后将这些文件复制到共享的缓存目录中(而不是直接将这些文件写入共享的缓存目录)。该选项可提高性能,但当多个机器都在使用缓存时,它仅适用于紧密缓存存储格式。默认值为 false。有关本地缓存目录位置和要求的详细信息,请参阅服务器上的本地缓存目录

<VirtualGlobeCacheDir>

GlobeServer

一个字符串,用来表示指向在 <GlobeCacheDir> 标记中指定的物理位置的虚拟目录的 URL。仅限 globe 服务。

<VirtualOutputDir>

MapServer、GeodataServer、GPServer 和 ImageServer

一个字符串,用来表示指向在 <OutputDir> 标记中指定的物理位置的虚拟目录的 URL。在创建新服务配置时,会从指定的服务器输出目录的 URL 复制该属性。

以下是用于 MapServer 配置的 <Properties> 标记及其子标记的示例:

<Properties>
	<FilePath>/cup1/arcgis/java/samples/data/ServerData/Yellowstone/Yellowstone.mxd</FilePath>
	<MaxRecordCount>1000</MaxRecordCount>
	<MaxBufferCount>100</MaxBufferCount>
	<MaxImageWidth>2048</MaxImageWidth>
	<MaxImageHeight>2048</MaxImageHeight>
	<SupportedImageReturnTypes>URL</SupportedImageReturnTypes>
	<MaxDomainCodeCount>25000</MaxDomainCodeCount>
	<OutputDir>/cup1/arcgis/server/serverdir/arcgisoutput</OutputDir>
	<VirtualOutputDir>http://cup:8399/arcgis/server/arcgisoutput</VirtualOutputDir>
</Properties>

以下是用于 GeocodeServer(其定位器为 ArcSDE 定位器)配置的 <Properties> 标记及其子标记的示例:

<Properties>
	<Locator>GDB.Portland</Locator>
		<LocatorWorkspaceConnectionString>
		ENCRYPTED_PASSWORD=0002c06e3bc49d6412c06c1baa554d00;
		SERVER=doug;
		INSTANCE=5151;
		USER=gdb;
		VERSION=SDE.DEFAULT
	</LocatorWorkspaceConnectionString>
	<SuggestedBatchSize>1000</SuggestedBatchSize>
	<MaxResultSize>500</MaxResultSize>
	<MaxBatchSize>1000</MaxBatchSize>
</Properties>
<Extension>

每种支持配置的服务器对象扩展模块或功能都带有 <Extension> 标记。此标记中包含了进一步描述扩展模块的子标记。

<TypeName>

服务器对象扩展模块或功能的类型名称。例如:WMSServer。

<Enabled>

一个布尔属性,用于指定是否为该配置启用扩展模块,如果启用,则为 true;如果禁用,则为 false

<Properties>

某些服务器对象扩展模块可能具有在子标记中进行详细定义的唯一属性。

<Info>

某些服务器对象扩展模块可以进行 Web 访问,这取决于在 <Info> 父标记内的 <WebEnabled> 标记和 <WebCapabilities> 标记的设置。<Info> 标记可在 <ServerObjectConfiguration> 标记和 <Extension> 标记下方显示。

<Recycling>

服务配置的回收属性的列表。该标记中包含了 <Start> 子标记和 <Interval> 子标记。

注意注意:

如果丢失了 <Recycling> 标记,或者该标记中的任一子标记属于无效标记,则将会针对此配置关闭回收。

<StartTime>

一个必需字符串,用来表示回收起始时间,即第一次针对服务配置进行回收的时间。将使用 24 小时表示法来指定此时间。例如起始时间设置为 2:00 p.m.,则 StartTime 属性将是 14:00。默认值为 00:00,表示第一次发生回收的时间为午夜。

<Interval>

一个必需的整数,用来定义回收操作之间的时间间隔,以秒为单位。例如,要每隔一个小时回收一次配置,则该属性将被设置为 3600。默认值为 86400,表示每隔 24 小时回收一次。

以下是 <Recycling> 标记及其子标记的示例:

<Recycling>
	<StartTime>00:00</StartTime>
	<Interval>36000</Interval>
</Recycling>
<Info>

该标记中包含了描述某个服务的 Web 访问等级的 <WebEnabled> 子标记和 <WebCapabilities> 子标记。该标记可在 <ServerObjectConfiguration> 标记和 <Extension> 标记下方显示。

<WebEnabled>

一个布尔属性,用来描述客户端是否能够通过 HTTP 访问服务。默认值为 true

注意注意:

该标记必须以 <Info> 作为父标记。

<WebCapabilities>

一个由逗号分隔的字符串,其中包含了服务所允许的操作。允许的操作表示客户端凭借某个服务所能执行的操作。需要特别提到的是,这些操作引用客户端能够调用的服务的 Web 服务描述语言 (WSDL) 中的方法组。有关服务类型的操作列表,请参阅调整和配置服务主题中的“限制用户可对服务执行的操作”。

注意注意:

该标记必须以 <Info> 作为父标记。

<IsPooled>

一个必需的字符串,用来表示由此配置创建的服务是否被池化,如果是,则为 true;否则为 false

<IsRunning>

一个布尔标记,用来表示服务是正在运行 (true) 还是已经停止 (false)。

<MinInstances>

一个整数,用来指定服务池的最小实例数。默认值为 0

<MaxInstances>

一个整数,用来指定在任一时间可运行的最大服务实例数。默认值为 0

<WaitTimeout>

一个可选的整数,用来指定在客户端请求服务与获取服务之间所允许的最大时间间隔(以秒为单位)。默认值为 60

<IdleTimeout>

在废除实例前允许服务实例空闲的时间(以秒为单位)。如果不存在任何处于使用状态的实例,则通过此设置,在一段时间后您的服务将返回最小实例数。默认值为 1800

<UsageTimeout>

一个可选整数,用来指定在自动释放某个服务前客户端能保留该服务的最大时间(以秒为单位)。默认值为 600

<CleanupTimeout>

在关闭命令后服务实例等待完成清理操作的时间(以秒为单位)。默认值为 30

<StartupTimeout>

在判定服务启动失败之前启动可以花费的最大时间(以秒为单位)。默认值为 300

<Isolation>

一个必需的字符串,用来表示配置的服务是具有高隔离级别 (high) 还是低隔离级别 (low)。

<StartupType>

一个可选字符串,用来指定配置是在 SOM 启动时由 SOM 启动,还是需要由管理员手动启动。有效值为 automaticmanual。默认值为 automatic。

<InstancesPerContainer>

一个整数,用来表示在一个容器进程内 (ArcSOC.exe) 允许运行的服务实例个数。当以高隔离级别(参阅 <Isolation>)运行时,该值默认为 1,并且不能进行更改。当以低隔离级别运行时,该值默认为 8,并且可设置为从 1 到 256 之间的任一整数。

<ServiceKeepAliveInterval>

一个整数,用于表示对参与空闲服务实例的 ArcSDE 数据连接进行有效性检查(如果必要的话,可以是修复)的间隔秒数。当服务的空闲时间达到一个间隔时间时,会开始对空闲服务进行检查。系统将以此间隔持续对服务进行检查,直到服务被重新使用。

默认情况下,ServiceKeepAliveInterval 被设置为 -1,表示不会执行任何检查。如果在经过一段时间的闲置后,发现您的服务原先就不可用,然后要在后续访问中恢复此服务,则请尝试将此属性设置为诸如 1800(即为 30 分钟)这样的值。如果仍然不断发现服务没有响应,则可将此值调整为更短的时间间隔。

此外,如果当您的服务闲置一段时间后,防火墙关闭了与 ArcSDE 连接的端口,则设置 ServiceKeepAliveInterval 同样能起到作用。在这种情况下,防火墙超时设置可能会影响 ServiceKeepAliveInterval 值的选择。

ServiceKeepAliveInterval 和 ConnectionCheckInterval 之间的差异就是:ServiceKeepAliveInterval 适用于空闲服务实例,而 ConnectionCheckInterval 则适用于频繁使用的服务实例。


3/7/2012