OdxAim - Omnidex Automatic Index Maintenance for RDBMS using Triggers

ODXAIM, Omnidex Automatic Index Maintenance, automatically maintains index synchronization for applications that do not use OmniAccess to update the data, using database triggers to signal when an update has occurred. This allows you to develop applications using the RDBMS' most powerful features, like stored procedures and transaction management, while taking advantage of the speed and flexibility of the OMNIDEX indexes.

ODXAIM generates a SQL script file with triggers and transaction tables that are installed directly into the database. As data updates occurs, the database trigger adds a record to the transaction table detailing the update. An ODXAIM process monitors these transaction tables, updating the indexes when appropriate, and then deleting the record in the transaction table.

It is important to note that index updates are not immediate and, depending on the frequency of database updates, there could be a slight delay in index synchronization.

If the ODXAIM monitoring process is not running for some reason, but the triggers have been installed in the database, the triggers will continue to work as defined. When the ODXAIM process is restarted, it will update the indexes with the information stored as a result of the triggers. If, on the other hand, the data stored in the aim tables is somehow deleted before the ODXAIM process can update the indexes, the indexes will be out of sync with the data and will have to be rebuilt using DBINSTAL.

Modes of Operation

ODXAIM has two modes of operation: Setup and Monitoring. Setup, which is the process of generating the AIM tables and triggers used to monitor data changes, is performed once per index installation. Monitoring is the background process that performs the index maintenance as the application updates the data.

Setup Setting up ODXAIM involves the following steps for an existing OMNIDEX installation:

Generate the SQL script to create the AiM tables and triggers. Generate the OMNIDEX environment source for the AIM tables. Add the new entries to the existing OMNIDEX environment source file and recompile. Run the SQL script to install the AIM tables and triggers. Start the ODXAIM monitoring (maintenance) process.


The ODXAIM monitoring process is the mode of operation that runs in the background performing the index updates. All of the setup steps must be complete before starting this process.

ODXAIM can run in session or daemon mode on UNIX and in session mode or as a service on Windows.

ODXAIM can be started by passing a configuration file specification which defines all of the run-time settings, or with just an environment catalog file specification, which will use the default settings. If running ODXAIM as a Windows service, the configuration file is required. The ODXAIM monitoring process does not have to be running when data updates are performed. When the ODXAIM process is started, it will check the AIM tables for updates and update the indexes appropriately. This, however, further delays index synchronization. A single ODXAIM process can monitor a single OMNIDEX environment.

Configuration File

The ODXAIM configuration file is used to configure ODXAIM functionality. All the settings defined in the configuration file, except for Logging and LogFile settings, can also be defined from the command line with options.

This configuration file is only required if using logging or when installing ODXAIM as a Windows service.

; =====================================================================
; ======== Dynamic Information Systems Corporation ========
; ====== ODXAIM - Omnidex Automatic Index Manager startup ======
; ====== configuration file ======
; =====================================================================
; OMNIDEX Kernel version 3.7
; =====================================================================
; This file lets you configure ODXAIM functionality.

; Required entries have default settings applied. Other settings can be
; enabled by removing leading semicolon (;) and modifying as necessary.
; =====================================================================

; =====================================================================
; Required. Contains settings used to configure OdxAIM functionality

; Specifies the OA Environment file that OdxAIM will maintain indexes for

; To use a stepping approach in polling odxtrans table, set
; SleepStepInterval to non-zero value, usually 2 seconds.
; After unsuccessful poll of odxtrans table (table empty),
; add last sleepinterval by SleepStepInterval for next
; sleepinterval up to the maximum.

; Specifies amount of time in seconds that OdxAIM sleeps before checking 
; for more Omnidex Indexing Transactions
; This entry is ignored if SleepStepInterval is set to non-zero value.

; Allows disabling of Logging
; 1 = Prevents Log records from being posted to odxaim_log table
; 0 = Allows Log records to be posted to odxaim_log table

; Configurable character used to delimit the column list in the transaction

;Configurable character used to delimit each columns' data values

Command Line Options

C:\dev\odx\tiny>odxaim -help
OdxAIM - Omnidex Automatic Indexing Manager

   Valid directives are:

   odxaim [cfgfile]
   odxaim -shutdown [cfgfile] [-env=OAEnvFIle]
   odxaim -gentrigger [-file=newtrigfile] [cfgfile]
   odxaim -genodxtrans [-file=envsource]
          [-newfile | -append]
   odxaim cfgfile
          [-ntservice=<unique service name>]
          -ntsrvaction=<INSTALL | INSTALL_AUTO | DELETE |
                         START | STOP | PAUSE | CONTINUE>
   odxaim -help | -?
   odxaim -version
Back to top
programs/odxaim/home.txt ยท Last modified: 2016/06/28 22:38 (external edit)