You are here

Maximizing GIS Performance in Your Sleep!

Utilities are one of the most intense consumers of ESRI geodatabases, typically performing large numbers of edits including long transactions where ArcSDE versions may be outstanding for weeks or even months. Regular system maintenance and performance optimization are key to ensuring that the GIS is providing maximum value to your organization. SSP Innovations has worked with a number of utilities to develop a suite of batch applications to handle the most common optimization tasks including:

  • Full State Tree Reconciliation
  • Version Conflict Notification
  • Orphaned Version Cleanup
  • Automated Posting of Configured Versions
  • ArcSDE Compresses
  • ArcSDE Add/Delete Table Statistics & Reporting
  • Oracle/SQL Server Indexing & Statistics
  • Session Aging Report
  • Permissions Report

The SSP Batch Suite is deployed as a fully configurable nightly routine which further provides a plug-and-play framework for other batch tasks such as:

  •  System Interface Management
  •  Business Data Reporting
  •  ArcGIS Domain Sorting and Synchronization

The SSP Batch Suite is made up of several different dll’s and a single exe called SSPBatchMaster.exe. This executable is responsible for running all other configured applications. SSPBatchMaster.exe uses .Net reflection (late binding) to instantiate and run the applications within the Batch Suite. Each individual application is made up of a .Net class that implements the IBatchApplication interface. This allows the SSPBatchMaster.exe to consume each application without knowing the details about what each application does (polymorphism).

There are two primary configuration files, SSPBatchMaster.exe.config and SSPBatchAppConfig.xml, that contain configuration available to ALL applications, as well as individual configuration files for each dll deployed ([dllname].dll.config) that contain application-specific configuration. The SSPBatchMaster.exe application is executed on a daily basis by a windows scheduled task.

The management of the batch applications occurs primarily via the SSPBatchAppConfig.xml file. The SSPBatchAppConfig.xml is a collection of application nodes. Within any given session the SSPBatchMaster.exe will execute an application in the order that it is listed within this file. In other words, if application A is listed prior to application C, then application A will attempt to execute before application C. The following is a sample of this relationship:

 <application
          powerSwitch="On"
          name="AppA"
          class="ClassA"
          assembly="E:\Apps\ClassA.dll"
          runLevel="0"
          runParam=""
          />
     <application
          powerSwitch="On"
          name="AppC"
          class="ClassC"
          assembly="E:\Apps\ClassC.dll"
          runLevel="0"
          runParam=""
          
/>

The configuration settings provided in the SSPBatchAppConfig.xml file define the execution, enabling, and scheduling for each application. The available settings are:

  • powerSwitch: enables and disables whether an application will execute regardless of the schedule. Available settings are ‘On’ or ‘Off’.
  • name: name associated with the application. This should be a descriptive name as it is used in the batch suite logging.
  • class: Fully qualified name of the class within the dynamic link library (dll) that will be executed by the batch master app.
  • assembly: Full path of the dll in which the application resides.
  • runLevel: A numeric setting for the frequency of which the application will run.
  1. Application will be executed daily on business days. (M-F)
  2. Application will be executed weekly.
  3. Application will be executed monthly.
  •  runParam: A numeric setting that further designates when the application will run. This value is directly tied to the runLevel.
  1. Daily options: Value is ignored
  2. Weekly options: Value indicates the day of the week. (0 = Sunday) - (6 = Saturday)
  3. Monthly options: Value indicates the day of the month. (1-28)

The next installment of this series will explore the common optimization tasks in more detail. The purpose, frequency and benefits will be described to further understand the tasks role in system maintenance and performance optimization.

Author Information

Add new comment