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:
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:
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:
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.
Add new comment