3.15 IBM Tivoli Enterprise Console (T/EC)+, Database Edition

Operations Center can integrate with IBM Tivoli Enterprise Console with its T/EC+ database-based integration, which provides better performance while lowering stress and impact on the T/EC Enterprise Server.

This adapter provides three integration strategies, all of which access the database directly to retrieve event history, add events, update events, and delete events. This greatly improves event historical performance and reduces the load placed on the T/EC Enterprise Server. These integration strategies are:

  • DB Integration strategy: retrieves events directly from the database and pushes event updates directly to the database.

  • Postemsg Integration strategy: retrieves events directly from the database and pushes event updates to T/EC using a Java implementation of the T/EC postemsg utility. This strategy is applicable for those who are less concerned about performance.

All strategies require knowledge of connection characteristics and an account on the database server where T/EC sends its event data. Operations Center logs into this database to obtain event data, and after initial mining occurs, polls this table for updates using an efficient, time stamp-based mechanism. There is no additional overhead used by the integration with the exception of one native T/EC Console logged into the database server.

3.15.1 DB Integration Strategy

To set up the T/EC+ adapter to use the DB Integration Strategy:

  1. If running Oracle 8 for the T/EC+ database and Oracle for the Operations Center Configuration Storage database, do the following to avoid driver conflicts:

    1. Stop the Operations Center server.

      For instructions, see Stopping the Operations Center server in Windows and Stopping the Server and the mosdaemon manually in UNIX in the Operations Center 5.6 Server Installation Guide.

    2. Install and configure a remote container.

      For more information about installing and configuring a remote container, see Section 6.0, Using Remote Containers.

    3. Save the corresponding version of the following JDBC drivers provided by Oracle in the ContainerInstall/classes/ext directory:

      • ojdbc14.jar
      • orai18n.jar
    4. Start the Operations Center server.

    5. Start the container.

      For more information about starting a remote container, see Section 6.4.2, Starting, Monitoring or Stopping a Remote Container Server from the Command Prompt.

    6. Continue to Step 4 and create the T/EC+ adapter under the container.

      For additional considerations about creating an adapter in a remote container, see Section 6.6, Configuring Adapters on Remote Containers.

  2. If running Oracle 8 for the T/EC+ database but not using Oracle for the Operations Center Configuration Storage database, save the following drivers provided by Oracle in the /OperationsCenter_install_path/classes/ext directory:

    • ojdbc14.jar
    • orai18n.jar
  3. Restart the Operations Center server.

    For instructions, see Manually Starting the Operations Center Server and Starting the Operations Center Server in UNIX in the Operations Center 5.6 Server Installation Guide.

  4. Obtain an account on the T/EC database server and ensure that the account has:

    • Select and update permission for the tec_t_evt_rep and tec_t_slots_evt tables.

    • Select permission for the tec_t_severity and tec_t_status_event tables.

  5. (Optional) Create a HierarchyFile for the T/EC systems.

    For instructions, see Section 9.0, Using the HierarchyFile.

  6. Create an IBM Tivoli Enterprise Console (T/EC)+, Database Edition adapter for each instance of T/EC on the network.

    For instructions, see Section 2.1, Creating an Adapter.

  7. Modify the IBM Tivoli Enterprise Console (T/EC)+, Database Edition adapter properties.

    Set the IntegrationStrategy property to DB.

    For property descriptions, see Section A.18, IBM Tivoli Enterprise Console (T/EC)+, Database Edition.

3.15.2 Postemsg Integration Strategy

To set up the T/EC+ adapter to use the Postemsg Integration Strategy, implement the following T/EC Rulebase modifications:

  1. Insert the following lines into the EVENT class definition of the root.baroc file, where hostname is the name of the T/EC Server:

    originating_tec_hostname: STRING, default="hostname";
    originating_event_id: STRING;
    originating_date: STRING;
    
  2. Insert the following modification to the tec.baroc file:

    TEC_CLASS:
        TEC_Sync ISA EVENT
        DEFINES {
            new_status: STRING;
            formula_user: STRING;
        };
    END
    
  3. Create and save a formula.rls file with the following code in the TEC_RULES directory:

    %%
    %% The following rule processes TEC_Sync events from Formula
    %%
    rule: tec_sync_from_formula: (
            description:'Processes TEC_Sync events from Formula Server',
            event: _event of_class 'TEC_Sync'
            where [
                    originating_event_id: _orig_event_id,
                    formula_user: _formula_user,
                    new_status: _new_status
            ],
    
            reception_action: (
                    first_instance(
                    event: _orig_event of_class _class
                    where [
                            originating_event_id: equals _orig_event_id,
                            status: _status outside [_new_status]
                    ] ),
                    set_event_status(_orig_event,_new_status),
                    bo_set_slotval(_orig_event, administrator, _formula_user),
                    re_mark_as_modified(_orig_event,_),
                    drop_received_event,
                    commit_set
            ).
    
    %%
    %% The following rule sets some slot values for Formula:
    %%
    rule: setup_formula_slots_rule: (
            description:'Forward all alarms to Formula Server',
            event: _event of_class _class
            where [
                    date_reception: _date_reception,
                    event_handle: _event_handle,
                    server_handle: _server_handle
            ],
            reception_action: (
                    sprintf(_orig_date, '%ld',[_date_reception]),
                    bo_set_slotval(_event, originating_date, _orig_date),
                    sprintf(_event_id, '%d%d%ld',[_event_handle,_server_handle,_date_reception]),
                    bo_set_slotval(_event,originating_event_id,_event_id),
                    re_mark_as_modified(_event,_)
            )
    ).
    
  4. To add the new ruleset to the rulebase, add the following line as the first line in the TEC_RULES/rule_sets file:

    rule_set( ‘formula', ‘formula.rls', active ),
    
  5. To compile the rulebase, enter the following command:

    wcomprules –t rulebaseName
    
  6. To load the rulebase, enter the following command:

    wloadrb rulebaseName
    
  7. To stop and start the T/EC Enterprise Console Server, enter the following commands:

    wstopesvr
    wstartesvr
    
  8. To complete the integration process:

    1. (Optional) Create a HierarchyFile for the T/EC systems.

      For instructions, see Section 9.0, Using the HierarchyFile.

    2. Create an IBM Tivoli Enterprise Console (T/EC)+, Database Edition adapter for each instance of T/EC on the network.

      For instructions, see Section 2.1, Creating an Adapter.

    3. Modify the adapter properties:

      • Set the IntegrationStrategy property to:

        IntegrationStrategy=POSTEMSG,hostname=T/EC_EnterpriseServerHostname,port=T/EC_EnterpriseServerPort,syncClass=TEC_Sync, userSlotName=formula_user
        
      • If the T/EC Event server is installed on UNIX, or if it is using the default port of 5529 on a Windows installation, it is not necessary to specify the port the T/EC+ adapter learns the port at runtime.

      • Acknowledging or closing an alarm updates the T/EC userSlotName property with the Operations Center User ID. If the argument is not present, then no slot is updated.

      For property descriptions, see IBM Tivoli Enterprise Console (T/EC)+, Database Edition.

3.15.3 Enabling the T/EC Rulebase for Alarm Suppression

In order to provide options for suppression on T/EC Alarms, it is necessary to setup the T/EC rulebase for suppression.

To enable suppression for T/EC alarms:

  1. Using a text editor, open the TEC_CLASSES/root.baroc file for the specific ruleset.

  2. In the ENUMERATION STATUS section after the 30 CLOSED entry, type 100 SUPPRESSED.

  3. Compile the rulebase using the wcomprules rulebaseName command.

  4. Stop the T/EC event server using the wstopesvr command.

  5. Start the T/EC event server using the wstartesvr command.

    The tec_t_status_event table updates with the SUPPRESSED option. The Suppress and Unsuppress options are available for T/EC alarms.

3.15.4 Using Table Objects in SQL Statements

To enable the use of Table objects in SQL select statements, add the following property to the /OperationsCenter_install_path/config/Formula.custom.properties file:

Tecdb.DB.Credentials=tec

Table 3-19 lists example T/EC select statements.

Table 3-19 Example T/EC Select Statements

Objective

Statement

Obtain severity mappings.

select code, description from tec_t_severity

Obtain status descriptions.

select code, description from tec_t_status_event

Obtain event slot data, use status for initial mining of events, and last_modified_time for pulling updates every 15 seconds.

select t1.server_hndl, t1.date_reception, t1.event_hndl, t2.slot_name, t2.short_slot_value, t2.long_slot_value from tec_t_evt_rep t1, tec_t_slots_evt t2 where t1.server_hndl = t2.server_hndl and t1.event_hndl = t2.event_hndl and t1.date_reception = t2.date_reception and t1.status <> ?   select t1.server_hndl, t1.date_reception, t1.event_hndl, t2.slot_name, t2.short_slot_value, t2.long_slot_value from tec_t_evt_rep t1, tec_t_slots_evt t2 where t1.server_hndl = t2.server_hndl and t1.event_hndl = t2.event_hndl and t1.date_reception = t2.date_reception and t1.last_modified_time >= ?

Obtain event data, again use status for the initial mining of event and last_modified_time for pulling updates every 15 seconds.

select * from tec_t_evt_rep where status <> ? select * from tec_t_evt_rep where last_modified_time >= ?