English

How To: Configure multiple application servers in Solaris

Summary

Instructions provided are for the set up of multiple servlet connectors, application servers, monitors, taskers, and spatial servers.

Procedure

The instructions assume ArcIMS is installed and working in a single application server setup.

  1. Setting up the application servers

    A. Copy AppServer.properties to AppServer1.properties. The AppServer.properties file can be found at:

    Code:
    /aims40exe/Middleware/Application_Server/

    B. Copy AppServer.properties to AppServer2.properties.

    C. Edit AppServer1.properties and AppServer2.properties so that connectorPort, regPort, defaultMonitorPort, and defaultTaskerPort are different from each other and from any other ports in use on the system. The following table provides some suggested values.
    [O-Image] App Server Settings
    D. Each Application Server process requires a separate working directory where it stores site-specific property files and log files. The working directory can be placed anywhere on the system but the Application Server daemon must have read and write access to the directory. For the rest of this article the working directory will be assumed to be a sub-directory of the $AIMSHOME directory. As the ArcIMS administrator, create two directories named 'site1' and 'site2' in $AIMSHOME; for example, /aims40exe. Copy the sitePreferences.properties file, located in $AIMSHOME/Middleware/Application_Server, to both locations.

  2. Setting up the monitors

    A. Copy Monitor.properties to Monitor1.properties and Monitor2.properties. The Monitor.properties file can be found in:

    Code:
    /aims40exe/Monitor


    B. Edit Monitor1.properties and Monitor2.properties so that registryPort and listenerPort agree with the regPort and defaultMonitorPort you set in AppServer1.properties and AppServer2.properties. The suggested values are listed below.
    [O-Image] MonitorPropertiesSettings

  3. Setting up the taskers

    A. Copy Tasker.properties to Tasker1.properties and Tasker2.properties. The Tasker.properties file can be found at /aims40exe/Middleware/Tasker.

    B. Edit Tasker1.properties and Tasker2.properties so that registryPort and listenerPort agree with the regPort and defaultTaskerPort you set in AppServer1.properties and AppServer2.properties. The suggested values are listed below.
    [O-Image] TaskerPropertiesSettings

  4. Setting up the Servlet Connectors

    A. Install the Servlet Connector from the ArcIMS CD into a new location; a suggested location would be in a subdirectory of the servlets directory called arcims1.

    B. Install the Servlet Connector from the ArcIMS CD into a second location; a suggested location would be in a subdirectory of the servlets directory called arcims2.

    C. In the Esrimap_prop file in both directories, set the appServerClientPort value to agree with the connectorPort value you set in AppServer1.properties and AppServer2.properties. Suggested values are shown below.
    [O-Image] ServletConnectorSettings
    D. Alias the servlet connector following the instructions in the white paper titled "Alias the ArcIMS Servlet Connector". See Related Information below for a link to this document.

  5. Setting up your aimsappsrvr scripts

    Note:
    If you have not customized your aimsappsrvr script, you may want to skip steps 5-A through 5-D and instead, download the sample aimsappsrvr1 and aimsappsrvr2 scripts to the /aims40exe/Xenv director from the Related Information section below.

    A. Copy aimsappsrvr (in /aims40exe/Xenv) to aimsappsrvr1 and aimsappsrvr2 and make them executable.

    B. In aimsappsrvr1 change the line below:

    Code:
    $JAVA_HOME/bin/java $java_options -Xms24m -Xmx128m -cp $AIMSHOME/Middleware/lib/aimsmutil.jar:$AIMSHOME/Middleware/Application_Server com.esri.esrimap.EsrimapCore $AIMSHOME/Middleware/Application_Server/AppServer.properties > $APP_SRVR_LOGFILE 2>&1

    so that AppServer.properties is replaced with AppServer1.properties.

    C. Replace the line below so that aimsappsrvr is replaced with aimsappsrvr1:

    Code:
    killproc "aimsappsrvr start" 2> /dev/null


    D. Change the line below:

    Code:
    APP_SRVR_LOGFILE=$AIMSHOME/log/app_srvr.log; export APP_SRVR_LOGFILE

    -to-

    Code:
    APP_SRVR_LOGFILE=$AIMSHOME/site1/app_srvr.log; export APP_SRVR_LOGFILE


    E. Repeat steps 5-B and 5-C for aimsappsrvr2, changing things appropriately.

  6. Setting up your aimsmonitor scripts

    Note:
    If you have not customized your aimsmonitor script, you may want to skip steps 6-A through 6-B and instead, ownload the sample aimsmonitor1 and aimsmonitor2 scripts to the /aims40exe/Xenv director from the Related Information section below.


    A. Copy aimsmonitor (in /aims40exe/Xenv) to aimsmonitor1 and aimsmonitor2 and make them executable.

    B. In aimsmonitor1 change the line below:

    Code:
    $JAVA_HOME/bin/java $java_options -cp $AIMSHOME/Middleware/lib/aimsmutil.jar:$AIMSHOME/Manager/lib/jsde82_sdk.jar:$AIMSHOME/Manager/lib/jsde82_sdkres.jar:$AIMSHOME/Monitor com.esri.mtier.ImsStopMonitor $AIMSHOME/Monitor/Monitor.properties >> $MONITOR_LOGFILE 2>&1

    so that Monitor.properties is replaced with Monitor1.properties.

    C. Replace the line below so that aimsmonitor is replaced with aimsmonitor1:

    Code:
    killproc "aimsmonitor start" 2> /dev/null


    D. Change the line below:

    Code:
    MONITOR_LOGFILE=$AIMSHOME/log/monitor.log; export MONITOR_LOGFILE

    -to-

    Code:
    MONITOR_LOGFILE=$AIMSHOME/site1/monitor.log; export MONITOR_LOGFILE

    E. Repeat steps 6.2 and 6.3 for aimsmonitor2, changing things appropriately.

  7. Setting up your aimstasker scripts

    Note:
    If you have not customized your aimstasker script, you may want to skip steps 7-A through 7-E and instead, ownload the sample aimstasker1 and aimstasker2 scripts to the /aims40exe/Xenv directory from the Related Information section below.


    A. Copy aimstasker (in /aims40exe/Xenv) to aimstasker1 and aimstasker2 and make them executable.

    B. In aimstasker1 change the line below:

    Code:
    $JAVA_HOME/bin/java $java_options -Xms24m -Xmx64m -cp $AIMSHOME/Middleware/lib/aimsmutil.jar:$AIMSHOME/Middleware/Tasker com.esri.mtier.ImsScavenger $AIMSHOME/Middleware/Tasker/Tasker.properties > $TASKER_LOGFILE 2>&1

    so that Tasker.properties is replaced with Tasker1.properties.

    C. Replace this line below so that aimstasker is replaced with aimstasker1:

    Code:
    killproc "aimstasker start" 2> /dev/null


    D. Change the line below:

    Code:
    TASKER_LOGFILE=$AIMSHOME/log/tasker.log; export TASKER_LOGFILE

    -to-

    Code:
    TASKER_LOGFILE=$AIMSHOME/site1/tasker.log; export TASKER_LOGFILE


    E. Repeat steps 7-B and 7-C for aimstasker2, changing things appropriately.

  8. Administering the application servers

    Administrator, Manager, and Designer always use the Administrative Servlet Connector. To use these programs with a particular AppServer, edit the Esrimap_prop file's appServerClientPort variable to refer to the correct application server. After making the change to the Esrimap_prop file, restart the servlet engine.

    If you are just performing actions on your services and you are using ArcIMS 4.0, you may wish to use the "ArcIMS Service Administrator" (see Step 4 of the installation guide for ArcIMS for directions on installing the Service Administrator) to avoid having to stop and restart your servlet engine.

    To administer AppServer 1 with the service administrator, enter this URL, changing it appropriately:

    Code:
    http://YourWebServer/esriadmin/logincheck.jsp?host=YourAppServer&port=5300


    To administer AppServer 2 with the service administrator, enter this URL, changing it appropriately:

    Code:
    http://YourWebServer/esriadmin/logincheck.jsp?host=YourAppServer&port=5302


    Note that you just changed the port in the URL to reflect which AppServer you wish to use.

Related Information