When you start up an ArcIMS site, you will see four types of ArcIMS processes running:
Before you continue any further, make sure you are familiar with the terms Spatial Server, Virtual Server, and ArcIMS service.
The Application Server handles the load distribution of incoming requests. It also catalogs which services are running on which Virtual Server. Within each Virtual Servier, the Application Server keeps track of which Spatial Server instances are associated with the Virtual Server. Using this information, the Application Server dispatches an incoming request to the appropriate Spatial Server instance. When the number of requests exceeds the number of available instances, they are stored in the Application Server's queue. The Application Server sends the request to the appropriate instance as the instances become available.
The Application Server also saves the site configuration in a file called ArcIMSSite.sez. This file is used to restore an ArcIMS site when the site is restarted. The location of this file is:
Windows: <ArcGIS Installation Directory>\ArcIMS\AppServer
UNIX and Linux: $AIMSHOME/Middleware/Application_Server
A Monitor manages the lifecycle of a Spatial Server process, which includes starting, keeping alive, and stopping the process. In a standard configuration, each machine containing one or more Spatial Server processes has one Monitor. After a Monitor starts Spatial Server processes, it stays in the background and ensures the Spatial Server processes are alive. In the meantime, the Application Server and Spatial Server processes communicate directly with each other. When a Spatial Server process stops communicating with the Application Server, the Applicaton Server instructs the Monitor to restart the Spatial Server process.
A Spatial Server is a process that initializes and manages instances (threads). When you see this process running on your machine, it is denoted as aimsserver.exe. A machine can have one or more Spatial Server processes running on a machine. You do not interact directly with Spatial Server processes. These processes are handled either by starting and stopping Monitor or by using Administrator or Service Administrator.
The tasker process deletes files of certain extensions on a user-specified interval. It watches output files generated by the Spatial Server. When a file is older that the specified time interval, it is deleted. In addition, Tasker can watch temporary files created by ArcMap Server and delete these files if they are older than the specified time interval. Information about setting up files and directories for removal is covered in Removing output files using ArcIMS Tasker.
The Application Server, Monitor, and Spatial Server processes work together to communicate, start services, and process requests.
After the Application Server process is started, the following sequence of events happens:
Your site will consist of one or more Spatial Server, Monitor, and Application Server processes. When you do a typical setup, all processes are running on one machine. You will see one Monitor and one Application Server. You will also see one Spatial Server process if ArcMap Server is not installed and three processes if ArcMap Server is installed.
If you have an additional machine with Spatial Servers running, you will see one Monitor and one or more Spatial Server processes. In this case, the Monitor registers with the Application Server on the first machine.
When you install ArcIMS, only one ArcIMS Application Server is available. If the Application Server fails, the ArcIMS site becomes inaccessible. You may want to consider having a second ArcIMS Application Server to handle failover. You can also use a second Application Server to help with load distribution of incoming requests in a round-robin configuration.
If you have multiple Application Servers, you should also install multiple Monitors on each machine. Each Monitor can be assigned to only one Application Server, and each Monitor spawns its own set of Spatial Servers. This allows for better use of system resources since requests can be routed to all Spatial Server machines regardless of which Application Server is used. Thus, the Spatial Server machines are never idle.
The following example shows a failover configuration using two Application Servers and two Monitors. Each Monitor is responsible for two Spatial Servers. The Application Server on the left is the active one. The Application Server on the right is idle. All requests go to the first Application Server and its associated Spatial Servers. If the first Application Server goes down for any reason, a switch is made to the second Application Server. When this happens all requests go to the second set of Spatial Servers.
ArcIMS does not automatically handle switching between two Application Servers. The process can be automated by using a load balancer.
For details on setting up multiple Application servers, see Step 2: Planning an ArcIMS site configuration in the ArcIMS Installation Guide, and look for the topic "Common site configuration scenarios". For information about installing multiple Monitors, see the topic "Installing additional ArcIMS Monitors" in the ArcIMS Installation Guide.
Once you have added multiple Application Servers, you must indicate whether you want failover or round robin support. When using failover, Application Server B is used if Application Server A fails to respond. When using round robin, the first request goes to Application Server A, the second request to B, the third to A, and so on. For more information, see Using multiple Application Servers for redundancy.If you are using more than one Application Server, you must administer ArcIMS services using the Service Administrator rather than with Administrator. In addition, you are responsible for making sure the list of services is synchronized among the Application Servers.
|ArcIMS Process||Associated files|
|Application Server||AppServer.properties, AppServer_Res.properties, AppServer_Res_(xx)_(XX).properties|
|Monitor||Monitor.properties, Monitor_Res.properties, Monitor_Res_(xx)_(XX).properties|
|Tasker||Tasker.properties, Tasker_Res.properties, Tasker_Res_(xx)_(XX).properties|
|Spatial Server||aimsamsrv.cfg, aimses.cfg, aimsfs.cfg, aimsgc.cfg reference, aimsis.cfg, aimsmd.cfg, aimsms.cfg, aimsqs.cfg, aimssdeio.cfg, aimsserver.cfg, aimsshpio.cfg|