IServerObjectConfiguration Interface

Provides access to administrators to members that control the behavior and properties of a server object configuration.

When To Use

Use the IServerObjectConfiguration interface to do the following:

Define a new server object configuration to be added to the server with the AddConfiguration method on IServerObjectAdmin

Update an existing server object configuration with the UpdateConfiguration method on IServerObjectAdmin

View the administrator level properties of an existing server object configuration. Administrator level properties are those that are not available through the IServerObjectConfigurationInfo interface, and include:

  • Properties
  • RecycleProperties
  • MinInstances
  • MaxInstances
  • IsolationLevel
  • StartupType
  • WaitTimeout
  • UsageTimeout

Properties that are available through bot the IServerObjectConfiguration (read/write) and IServerObjectConfigurationInfo (read only) interfaces include:

  • Name
  • TypeName
  • Description
  • IsPooled

Members

Name Description
Read/write property Description Description of the server object configuration.
Read/write property IsolationLevel The isolation level of the server objects defined by the server object configuration.
Read/write property IsPooled Indicates whether the server objects defined by this configuration are pooled.
Read/write property MaxInstances The maximum number of server object instances for a server object configuration.
Read/write property MinInstances The minimum number of server object instances for a server object configuration.
Read/write property Name Name of the server object configuration.
Read/write property Properties Initialization parameters and properties for the server objects created by the server object configuration.
Read/write property RecycleProperties The recycling properties for the server object configuration.
Read/write property StartupType The startup type for this server object configuration. Startup type describes whether the server object configuration is started when the server object manager service is started for the GIS server.
Read/write property TypeName Type of the server object configuration (MapServer or GeocodeServer).
Read/write property UsageTimeout Maximum time (in seconds) a client can hold onto an instance of a server object for this server object configuration before releasing it back to the server. It is the maximum time allowed between calling CreateServerContext and ReleaseServerContext.
Read/write property WaitTimeout Maximum time (in seconds) a client will wait for an instance of a server object for this server object configuration using the CreateServerContext method on IServerObjectManager before timing out.

IServerObjectConfiguration.Description Property

Description of the server object configuration.

Public Property Description As String
public string Description {get; set;}

IServerObjectConfiguration.IsolationLevel Property

The isolation level of the server objects defined by the server object configuration.

Public Property IsolationLevel As esriServerIsolationLevel
public esriServerIsolationLevel IsolationLevel {get; set;}

Remarks

Server objects can have either high isolation (esriServerIsolationLevelHigh) or low isolation (esriIsolationLevelLow ). Each instance of a server object with high isolation run in s a dedicated process on the server that it does not share with other server objects. Instances of server objects with low isolation may share the same process with other server object instances of the same configuration.

Use the IsolationLevel property to get the server object isolation, or set it for a new configuration or to update an existing configuration.

IServerObjectConfiguration.IsPooled Property

Indicates whether the server objects defined by this configuration are pooled.

Public Property IsPooled As Boolean
public bool IsPooled {get; set;}

Remarks

Server objects can be either pooled or non-pooled. Pooled server objects can be shared accross multiple sessions and applications and are held onto by an application for the duration of a single request. Pooled server objects are meant for applications that make stateless use of those objects.

Non-pooled server objects are dedicated to a single application session and are held onto for the duration of an application session. Non-pooled server objects are not shared between application sessions, and are meant for applications that make stateful use of those objects.

Use the IsPooledproperty to indicate if the server objects created by this server object configuration are pooled or non-pooled. When StartConfguration is called on a server object configuration whose IsPooled property is true a set of server objects will be pre-loaded based on the MinInstances property of the server object configuration.

When StartConfiguration is called on a server object configuration whose IsPooled property is false, no server objects are pre-loaded. Server objects are loaded and initialized when an application gets one from the server using CreateServerContext.

IServerObjectConfiguration.MaxInstances Property

The maximum number of server object instances for a server object configuration.

Public Property MaxInstances As Integer
public int MaxInstances {get; set;}

Remarks

The MaxInstances property indicates the maximum number of server objects that can be running and handle requests at any one time. if the maximum number of server objects are running and busy, additional requests will be queued until a server object becomes free.

For a pooled server object, the MaxInstances represents the maximum simultaneus requests that can be processed by the server object configuration. For a non-pooled server object, the MaxInstances represents the maximum number of simlutaneus application users of that particular server object configuration.

The MaxInstances property must be greater than 0 and must be greater than the MinInstances property.

IServerObjectConfiguration.MinInstances Property

The minimum number of server object instances for a server object configuration.

Public Property MinInstances As Integer
public int MinInstances {get; set;}

Remarks

The MinInstances property represents the number of server object instances that are pre-loaded when the server object configuration is started. The GIS server will ensure that the minimum number of instances are always running within the server for a given configuration.

When there are more simultaneous requests that server object instances running, additional server object instances will be started until MaxInstances is reach.

The MinInstances property must be less than the MaxInstances property.

IServerObjectConfiguration.Name Property

Name of the server object configuration.

Public Property Name As String
public string Name {get; set;}

Remarks

The Name property in combination with the TypeName property is used to identify a server object configuration in methods such as GetConfiguration, UpdateConfiguration, StartConfiguration, etc.

Name is case-sensitive, and can have a maximum of 120 characters. Names can contain only the following characters:

A - Za - z0 - 9_ (undescore)- (minus)

IServerObjectConfiguration.Properties Property

Initialization parameters and properties for the server objects created by the server object configuration.

Public Property Properties As IPropertySet
public IPropertySet Properties {get; set;}

Remarks

Server objects that are defined by server object configurations have a collection of initialization parameters and properties associated with them. An example of an initialization parameter is the map document associated with a MapServer object. An example of a property is the batch geocode size for a GeocodeServer object.

You can get these properties and change them using the Properties property on the server object configuration. The Properties property returns an IPropertySet. Use GetProperty, SetProperty on IPropertySet to get and set these properties. If you change these properties, you must call UpdateConfiguration to change them in the server object configuration.

You also use the Properties property to get a reference on the PropertySet for a new server object configuration to set its properties before adding it to the server by calling AddConfiguration.

The following are the properties for a MapServer object:

FilePath - the path to the map document that the MapServer will serve. This is a required property.

Example: \\machine\data\usa.mxd

OutputDir - the location to which the MapServer will write its output. The OutputDir is typically a server directory. This is an optional property.

Example: \\machine\serveroutput

VirtualOutputDir- the virtual directory that corresponds to the OutputDir location. This is a required property if the OutputDir is specified.

Example: http://webserver/serveroutput

MaxRecordCount- the maximum number of records returned by the QueryFeatureData, Find and Identify methods on the MapServer. This is an optional property.

Example: 500

MaxBufferCount - the maximum number of features per layer that can be buffered at draw time when using the ExportMapImage on MapServer. This is an optional property.

Example: 100

MaxImageWidth- the maximum width of images (in pixels) that can be produced by ExportMapImage. This is an optional property.

Example: 2048

MaxImageHeight- the maximum height of images (in pixels) that can be produced by ExportMapImage. This is an optional property.

Example: 2048

The following are the properties for a GeocodeServer object:

Locator- the name of the locator that the GeocodeServer will serve. This is a required property.

Example: California

LocatorWorkspacePath- If the locator is a .loc or .mxs file, this is the path to the locator. This is a required property for locator files.

Example: \\machine\data\locators\

LocatorWorkspaceConnectionString - If the locator is an SDE locator, then this is the SDE connection string. This is a required property for SDE locators.

Example: SERVER=machine;INSTANCE=5151;DATABASE=gdb;USER=gdb;PASSWORD=gdb;VERSION=sde.DEFAULT

SuggestedBatchSize- the number of records that the GeocodeServer object will process at one time when performing batch geocoding.

Example: 500

MaxBatchSize- the maximum number of records that can be input into the GeocodeAddresses method. This is an optional property.

Example: 10000

MaxResultSize - the maximum number of candidates resturned by the FindAddressCandidates method. This is an optional property.

Example: 500

IServerObjectConfiguration.RecycleProperties Property

The recycling properties for the server object configuration.

Public Property RecycleProperties As IPropertySet
public IPropertySet RecycleProperties {get; set;}

Remarks

Pooled server objects are typically shared between multiple applications and users of those applications. Through reuse, a number of things can happen to a server object to make them unavailable for use by applications. For example, an application may incorrectly modify a server objects state, or an application may incorrectly hold a reference to a server object, making it unavailable to other applications or sessions. In some cases, server object may become corrupted and unusable.

Recycling allows for server objects that have become un-usable to be destroyed and replaced with fresh server objects, and to reclaim resources taken up by stale server objects. This process allows you to keep the pool of server objects fresh, and cycle out stale or unusable server objects.

You can get the recycling properties and change them using the RecyclingProperties property on the server object configuration. The RecyclingProperties property returns an IPropertySet. Use GetProperty, SetProperty on IPropertySet to get and set these properties. If you change these properties, you must call UpdateConfiguration to change them in the server object configuration.

You also use the RecyclingProperties property to get a reference on the PropertySet for a new server object configuration to set its properties before adding it to the server by calling AddConfiguration.

The properties associated with recylcing are:

StartTime which is time at which the recycling interval is initialized. The time specified is in 24 notation. For example, to set the start time at 2pm, the StartTime property would be 14:00.

Interval which defines the the time between recycling operations in seconds. For example, to recycle the configuration every hour, this property would be set to 3600.

IServerObjectConfiguration.StartupType Property

The startup type for this server object configuration. Startup type describes whether the server object configuration is started when the server object manager service is started for the GIS server.

Public Property StartupType As esriStartupType
public esriStartupType StartupType {get; set;}

Remarks

The StartupType indicates if the configuration is automatically started (esriSTAutomatic) when the server object manager windows or UNIX service is started. Server object configuraitons that are not configured to startup automatically (esriSTManual) must be started manually using ArcCatalog, or by calling the StartConfiguration method on IServerObjectAdmin.

IServerObjectConfiguration.TypeName Property

Type of the server object configuration (MapServer or GeocodeServer).

Public Property TypeName As String
public string TypeName {get; set;}

Remarks

The TypeName property indicates the type of server object that this configuration creates and runs. Examples are MapServer and GeocodeServer.

The TypeName property in combination with the Name property is used to identify a server object configuration in methods such as GetConfiguration, UpdateConfiguration, StartConfiguration , etc.

IServerObjectConfiguration.UsageTimeout Property

Maximum time (in seconds) a client can hold onto an instance of a server object for this server object configuration before releasing it back to the server. It is the maximum time allowed between calling CreateServerContext and ReleaseServerContext.

Public Property UsageTimeout As Integer
public int UsageTimeout {get; set;}

Remarks

Once a client gets a reference to a server object, they can hold onto that server object as long as they want to before releasing it. The amount of time between when a client gets a reference to a server object and when they release it is called the usage time. To ensure that clients don�t hold references to server object�s for too long (i.e. they don�t correctly release server objects), A server object can be configured to have a maximum usage time by specifying the UsageTimeoutproperty onIServerObjectConfiguration. If a client holds onto a server object longer than the maximum usage time, then the server object is automatically released and the client will lose their reference to the server object.

The UsageTimeout is in seconds.

IServerObjectConfiguration.WaitTimeout Property

Maximum time (in seconds) a client will wait for an instance of a server object for this server object configuration using the CreateServerContext method on IServerObjectManager before timing out.

Public Property WaitTimeout As Integer
public int WaitTimeout {get; set;}

Remarks

The amout of time it takes between a client requesting a server object (using the CreateServerContext method on IServerObjectManager) and getting a server object is called the wait time. A server object can be configured to have a maximum wait time by specifying the WaiteTimeoutproperty onIServerObjectConfiguration. If a client�s wait time exceeds the maximum wait time for a server object, then their request will timeout.

The WaiteTimeoutproperty is in seconds.

Classes that implement IServerObjectConfiguration

Classes Description

Remarks

The ArcGIS Server manages a set of server objects running across one or more host (container) machines. How those server objects are configured and run is defined by a set of server object configurations. Server object configurations can be added, removed, and modified by users or developers who are members of the agsadmin users group, and therfore have administrator priviliges on the ArcGIS Server.

The IServerObjectConfiguration interface is a read/write interface on a server object configuration that allows administrators to configure new server object configurations to add to the server, update existing server object confiurations, and to view the configuration properties of a server object configuration.

Users and developers that are not part the the agsadmin user group do not have access to this interface. An additional read-only interface called IServerObjectConfigurationInfo is available to non-administrators, which provides read-only access to a subset of the server object configuration's properties.

If you use IServerObjectConfiguration to modify any of a configuration's properties, you must call UpdateConfiguration on IServerObjectAdmin for those changes to be reflected in the server.

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.