9Running EIM

Running EIM

This chapter covers how to run an EIM process and check the results. This chapter is organized into the following sections:

Preparing to Run an EIM Process

You can run an EIM process (import, export, delete, or merge) once you have:

  • Identified the data for EIM processing

  • Prepared the related EIM tables

  • Modified the EIM configuration file accordingly

You can start an EIM process by running a server task for the Enterprise Integration Manager component. You can run the server task using either the GUI or the command-line interface. For more information on running server tasks, see Siebel System Administration Guide.

Running an EIM Process

On each pass, EIM processes one EIM table and performs a particular action on all rows in that table for that batch. Most passes affect only the EIM table’s temporary columns; for example, resolving foreign keys. There are two methods for running an EIM process:

Running an EIM Process Using the Graphical User Interface

The most common method for starting an EIM server task is to use the graphical user interface (GUI). When performing this procedure, be aware that passes in Step 8 in EIM Import Process (update), Step 9 in EIM Import Process (insert), and Step 10 in EIM Import Process (primary keys) affect the base tables. All steps are performed for all columns used in the import process.

Caution: If you are running EIM on a DB2 database, then set the database configuration parameters as described in the Siebel Installation Guide for the operating system you are using, or EIM will not run successfully. You should also run the updatestats.sql script (located in dbserver_home\db2) each time before running EIM, or performance issues may be encountered when loading the dictionary. For more information, see Siebel Performance Tuning Guide.

To run an EIM process using the GUI

  1. Navigate to the Administration-Server Management screen, and then Jobs view.

  2. In the Jobs list, click New.

    The component job status field changes to Creating.

  3. In the Component/Job field, click the Select button.

    The Component/Jobs pick applet appears.

  4. From the Find drop-down list, select Name, and perform the following query: Enterprise Integration Mgr, then click OK.

    If you want to use a component job template based on EIM for your component request, you must first define the component job template. For information on defining component job templates, see Siebel System Administration Guide.

  5. In the Job Detail view, enter data in other appropriate fields as described in the table that follows.

    Field Description

    Scheduled Start

    The scheduled start date and time of the component job.

    Expiration

    The date at which the component job is no longer valid.

    Requested Server

    Set if you want to target a server component on a specific Siebel Server.

    Request Key

    Set if you want to target a component or repeating component job to a specific instance of the server component identified by the request key. In all other situations, keep this field blank.

    Delete Interval

    Set with Delete Unit field, this field determines the length of time before the component job is deleted. If not updated, this field defaults to 1.

    Delete Unit

    Set with Delete Interval field, this field determines the length of time before the component job is deleted. If not updated, this field defaults to Weeks.

    Retry on Error

    Check this box to retry the component job in case of error.

    Sleep Time

    This field is available when the Retry on Error check box is true and determines the amount of time before the component job is retried.

    Number of Retries

    This field is available when the Retry on Error check box is true and determines the number of times the component job is retried.

  6. Click the menu button, and then click Save Record.

  7. In the Job Parameters list, add or change any component job parameters for the EIM process:

    1. Click the New button.

    2. In the Name field, click the Select button.

      The Job Parameters dialog box appears. The parameters that appear in the Job Parameters dialog box vary depending on the server component you selected in Step 3.

    3. Select a parameter in the Component Parameters dialog box, and modify its value.

    4. Click the menu button and then click Save Record.
  8. In the Jobs list, click the Submit Job button.

    The Status field changes from Creating to Queued.

    Caution: EIM is a multistep process. Once the EIM process is running, do not stop or pause the task. Otherwise, some steps may not roll back correctly.

Running an EIM Process Using the Command-Line Interface

You can also start the EIM server task through the command-line interface. For example, if you are using a UNIX operating system or if you have experienced the EIM server task being QUEUED when the job was submitted by the GUI, use the command-line interface to run an EIM process.

To run an EIM process using the command-line interface

  1. Start the srvrmgr program in the command-line interface.

    For information on srvrmgr program, see Siebel System Administration Guide.

  2. Execute a start task command or a run task command on the Enterprise Integration Mgr component. Be sure to specify the configuration file with the config parameter.

    Note: You cannot use the Uniform Naming Convention (UNC) in the Server Manager command-line interface when specifying the configuration file.

    If you do not specify a configuration file, the default.ifb configuration file will be used. If you put the .IFB file you want to use in a directory other than the default directory (<SiebSrvr\Admin> folder), you will need to specify the path to the .IFB file when you start the EIM component.

    The following example shows how to use the run task command to start an import process:

    run task for component eim with config=import.ifb
    

    For more information on the start task command and the run task command, see Siebel System Administration Guide.

    Caution: EIM is a multistep process. When the EIM process is running, do not interrupt the task. Otherwise, some steps may not roll back correctly.

    The following example shows how to use the run task command to start an import process that uses a different LOV language than the default setting of the EIM LOV language parameter:

    run task for component eim with config=import.ifb, LovLang=ESN
    

Viewing the EIM Log File

In the Task Info Log view, you can view information about the results of an EIM process by drilling down in an EIM server task that has completed. This information is also provided in the EIM log file within the siebel server\log directory. The log consists of three general sections:

  • Startup messages. This section pertains to dictionary loading, parameter loading, and .IFB file parsing.

  • Run-time messages. This section shows the begin and end times for each process.

  • Row-count summary of each process. This section shows the number of rows updated in each table.

If error flags, SQL trace flags, or trace flags were activated for the EIM process, the EIM log file will also contain the results of each flag. For more information on trace flags and error flags, see Using Trace Flags, SQL Trace Flags, and Error Flags.

Further information on the EIM log file is provided as follows:

To view EIM log file information in the Task Info Log

  1. Navigate to Administration - Server Management screen, then the Tasks view.

  2. In the Tasks list, select the task for the EIM process.

  3. Click the Log tab.

    The log for the selected task is displayed in the Log list.

Note: You can also view this information by opening the EIM log file in the siebel server\log directory.

Using Trace Flags, SQL Trace Flags, and Error Flags

You can activate trace flags and error flags to log transactions. This topic covers the following types of flags:

Note: Activating flags will have a direct effect on performance. Typically, activating flags should only be done when testing EIM processes. Avoid activating flags in a production environment unless absolutely necessary.

Recommended settings for error flags, SQL trace flags, and trace flags include the following:

  • To display errors and unused foreign keys. Start with the following setting combination. The setting Trace Flag=1 provides a summary (after each batch) of the elapsed time in EIM steps 10 and 11.

Setting

Value

Error Flag

1

SQL Trace Flag

1

Trace Flag

1

  • To determine SQL performance. The following setting combination produces a log file with SQL statements including the elapsed time for each statement.

Setting

Value

Error Flag

1

SQL Trace Flag

8

Trace Flag

3

  • To determine optimal batch size and monitor performance in a particular step. The following setting combination produces a log file showing the elapsed time for each EIM step.

Setting

Value

Error Flag

0

SQL Trace Flag

0

Trace Flag

1

Error Flags

To activate error flags, you must complete Step 7 in Running an EIM Process Using the Graphical User Interface when running an EIM process. Setting the Error Flags parameter to 1 produces a detailed explanation of rows that were not successfully processed.

There are a variety of reasons why rows might not be processed. The following sample shows an excerpt from an EIM Error Flag 1 trace. The log begins with a header that describes an export failure that occurred during Step 2, Pass 101.

2001-04-04 03:47:59 4/4/01 3:47 Warning: No rows in S_ORG_EXT matched by expressions 
for export.
2001-04-04 03:47:59 Process [Export Old Accounts] had all rows fail
2001-04-04 03:47:59  on EIM_ACCOUNT for ] 2001 in step 2, pass 101:
2001-04-04 03:47:59  No base table rows matched expressions. (severity 5)
2001-04-04 03:47:59 Base table:
2001-04-04 03:47:59 S_ORG_EXT (Account)
2001-04-04 03:47:59 The match expressions specified for exporting rows through this 
interface table
2001-04-04 03:47:59 did not match any of the rows currently in the target base table.
2001-04-04 03:47:59 Since there were no matches for the given match expressions, 
processing for
2001-04-04 03:47:59 this interface table was discontinued. However, processing of 
other interface
2001-04-04 03:47:59 tables will continue.
2001-04-04 03:47:59 Recorded 1 group of failures.

SQL Trace Flags

To activate SQL trace flags, you must complete Step 7 in Running an EIM Process Using the Graphical User Interface when running an EIM process.

Setting the SQL Trace Flags parameter to 8 creates a log of all SQL statements that make up the EIM task. The lower values for SQL Debug Flags (1, 2, and 4) are used for logging at the ODBC level.

Trace Flags

Trace flags contain logs of various EIM operations. To activate trace flags, you must complete Step 7 in Running an EIM Process Using the Graphical User Interface when running an EIM process. Also set event logging for the EIM component, as described in Setting Event Logging from the Graphical User Interface.

Trace flags are bit-based. Available trace flags include 1, 2, 4, 8, and 32. To activate multiple trace flags, set the Trace Flags parameter to the sum of individual trace flag numbers. For example, to log trace flags 2 and 4, set the Trace Flags parameter to 6.

Setting Event Logging from the Graphical User Interface

You can set event logging for the EIM component using the Administration - Server Configuration views in the Siebel client.

Note: You can also set event logging using the SrvrMgr command line. See Setting Event Logging from the Command-Line Interface.

To set event logging for the EIM component from the GUI

  1. Navigate to the Administration - Server Configuration screen, Servers, Components, and then the Events view.

  2. In the Components list, select Enterprise Integration Manager as the component.

  3. Click the Events tab to view all the configurable event types for the selected component.

    The log level is set to a default value of 1.

  4. Perform a query and enter the specified log level for each of the following event types:

    Event Type Log Level Value

    EIM SQL

    4

    SQL Summary

    4

    Task Configuration

    4

    EIM Trace

    3

Note: The event types EIM Debug, EIM Error, and EIM System Stats exist for compatibility with previous versions of the Siebel application. Do not change the default value for these parameters.

It is not necessary to restart the Siebel Server to apply the event type log level changes. The changed settings are active in the next EIM task executed.

For more information on event logging administration, see Siebel System Monitoring and Diagnostics Guide.

Setting Event Logging from the Command-Line Interface

You can also set event logging for the EIM component from the Server Manager command line.

To set event logging for the EIM component from the command line

  • Use the following commands:

    change evtloglvl SQLSummary=4 for component eim
    change evtloglvl EIMSQL=4 for component eim
    change evtloglvl TaskConfig=4 for component eim
    change evtloglvl EIMTrace=3 for component eim
    

Other necessary commands for activating tracing levels are the following:

  • When running the EIM task. Specify the following parameters:

    Srvrmgr> run task for component eim with config=<configfile.ifb>, TraceFLags=1, 
    ErrorFlags=1, SQLFlags=8
    
  • To view existing event log levels for the EIM component. Use the following command:

    Srvrmgr> list evtloglvl for component eim 
    

Trace Flag Settings

This topic provides Trace Flag setting information as follows:

Trace Flag 1

Setting the Trace Flags parameter to 1 creates a step-oriented log of the task. This can be used to determine the amount of time EIM spends on each step of the EIM task, or for each EIM table processed. The following sample shows an EIM Trace Flag 1 output:

Initializing
   Loading configuration file imacct.ifb 0s
   Opening server database ora_dev 6s
   Loading Siebel dictionary 15s
 Initializing  21s
 Import Accounts  14
   Importing EIM_ACCOUNT
     Step 1: initializing IF Table  0s
     Step 4: resolving foreign keys  S_ORG_EXT  0s
     Step 5: locating existing row S_ORG_EXT  0s
	  Step 7: finding new foreign keys 4s
     Step 9: inserting new rows S_ORG_EXT 2s
   Importing EIM_ACCOUNT 15s
Updating primaries
     Step 10: updating primary keys S_ORG_EXT 3s
   Updating primaries 3s
 Import Accounts 14 18s

Trace Flag 2

Setting the Trace Flags parameter to 2 creates a file log that traces all substitutions of user parameters. The following example shows an EIM Trace Flag 2 output:

[TRC01] Parameter Set << AFTER RESOLUTION >> 
[TRC01]   UserParams = IFTABLE=EIM_ACCOUNT 
[TRC01]  [0] $IFTABLE = EIM_ACCOUNT 
[TRC01]  [1] $CURRENT_USER = wgong 
[TRC01]  [2] $CURRENT_DATETIME = 4/6/01 13:17 
[TRC01] [Siebel Integration Manager] 
[TRC01] log transactions = false
[TRC01] $COLUMN_VALUE = 'EIM ins_acct Test%'
[TRC01] [ins_acct_shell] 
[TRC01] TYPE = SHELL
[TRC01] INCLUDE = del_acct
[TRC01] INCLUDE = ins_acct
[TRC01] [del_acct] 
[TRC01] SESSIONSQL = DELETE FROM DEV50.EIM_ACCOUNT WHERE IF_ROW_BATCH_NUM=21
[TRC01] TYPE = DELETE
[TRC01] BATCH = 20
[TRC01] TABLE = EIM_ACCOUNT
[TRC01] $COLUMN_NAME = NAME
[TRC01] DELETE MATCHES = EIM_ACCOUNT,(NAME LIKE 'EIM ins_acct Test%')
[TRC01] [ins_acct] 
[TRC01] SESSIONSQL = INSERT INTO DEV50.EIM_ACCOUNT (IF_ROW_STAT, ROW_ID, 
IF_ROW_BATCH_NUM, ACCNT_NAME, ACCNT_LOC) SELECT 'X', ROW_ID, 21, 'EIM ins_acct Test 
' || ROW_ID, 'Loc' FROM DEV50.S_SYS_PREF
[TRC01] TYPE = IMPORT
[TRC01] BATCH = 21
[TRC01] TABLE = EIM_ACCOUNT

Trace Flag 4

Setting the Trace Flags parameter to 4 creates a file log that traces all user-key overrides. The following example shows an EIM Flag 4 output for a user key override to the EIM_ACCOUNT table:

[TRC02] ------------------------------------------------------
[TRC02] ***** IF TABLE <EIM_ACCOUNT> uses USER_KEY_COL *****
[TRC02] Action: No Move & Insert 
[TRC02] overriding UK Index (S_TERR_ITEM_U1) at position (0)
[TRC02] ##### Destination TABLE (S_TERR_ITEM) index vector: [S_TERR_ITEM_U1]
[TRC02] --- Column (T_TERITE_OUID) index vector: [S_TERR_ITEM_U1]
[TRC02] --- Column (T_TERITE_TERID) index vector: [S_TERR_ITEM_U1]
[TRC02] ------------------------------------------------------

Trace Flag 8

Setting the Trace Flags parameter to 8 creates a file log that traces all Interface Mapping warnings. The following example shows an EIM Flag 8 output for an Interface Mapping warning between the EIM_ACCOUNT and S_TERR_ITEM tables:

[TRC03] --------------------------------------------------------
[TRC03] IF table EIM_ACCOUNT destination S_TERR_ITEM
[TRC03]   IF column EIM_ACCOUNT.T_TERITE_TERID:
[TRC03]  imports to: S_TERR_ITEM.TERR_ID
[TRC03]  exports from: S_TERR_ITEM.TERR_ID
[TRC03]     Column NAME of join isn't in table!
[TRC03]     Missing join to user key NAME
[TRC03] --------------------------------------------------------

Trace Flag 32

Setting the Trace Flags parameter to 32 creates a file log that traces all file attachment status. The trace file contains four labels, three of which are used to trace file attachment processes as described in the following table.

Label Description

Attachment Imported

Indicates whether the file attachment was encoded, compressed, and copied to the Siebel file server with the new name.

Attachment (Old) Deleted

This label applies only to updates and indicates whether an existing file was replaced and deleted.

Attachment Not Found

Indicates that the file attachment cannot be found in the input directory.

The following sample shows an EIM Flag 32 output for an opportunity file attachment:

[TRC32] Attachment Imported: E:\V50\output\openpost.doc -> 
\\BALTO\SIEBFILE\ORADEV50\S_OPTY_ATT_10+413+1_10-41R-0.saf
[TRC32] Attachment (Old) Deleted: \\BALTO\SIEBFILE\ORADEV50\S_OPTY_ATT_10+413+1_10-
40Y-0.saf
[TRC32] Attachment Not Found: E:\V50\output\openpost.doc
[TRC32] Attachment Identical: E:\V50\output\openpost.doc IDENTICAL TO 
\\BALTO\SIEBFILE\ORADEV50\S_OPTY_ATT_10+413+1_10-41R-0.saf

Optimizing EIM Performance

There are several ways you can improve EIM run-time performance. The best practices suggested in this section optimize EIM performance. For additional information on improving the performance of EIM, see Siebel Performance Tuning Guide.

Table Optimization for EIM

This section discusses ways that you can optimize tables for EIM processing.

Configuration Parameters

Limit base tables and columns to be processed. Four EIM parameters can help improve performance by limiting the affected tables and columns:

  • ONLY BASE TABLES

  • IGNORE BASE TABLES

  • ONLY BASE COLUMNS

  • IGNORE BASE COLUMNS

The ONLY BASE COLUMNS parameter is critical for the performance of an EIM process updating a few columns in many rows.

Note: Do not use the IGNORE BASE COLUMNS parameter for merge processes or export processes. This parameter should only be used for import processes and delete processes.

For other suggestions involving parameter settings, see Parameter Settings Optimization for EIM.

Indexes

Verify that all indexes exist for the tables involved. In most implementations, the tables and corresponding indexes in the following list tend to be the most heavily used and should be separated across devices. In general, the following indexes should be on different physical devices from the tables on which they are created.

  • S_ACCNT_POSTN

  • S_OPTY

  • S_ADDR_ORG

  • S_OPTY_POSTN

  • S_CONTACT

  • S_POSTN_CON

  • S_DOCK_TXN_LOG

  • S_PARTY_RPT_RE

  • S_SRV_REQ

  • S_EVT_ACT

  • S_OPTY

  • S_ORG_EXT

For organizations that plan to use EIM extensively, you should put your key EIM tables (based on your unique business requirements) on different devices from the Siebel base tables, because all tables are accessed simultaneously during EIM operations.

You can speed up deletes and merges involving S_ORG_EXT by adding an index to one or more columns. For more information, see Siebel Performance Tuning Guide.

Maintenance of EIM Tables

Perform regular table maintenance on EIM tables. Frequent insert or delete operations on EIM tables can cause fragmentation in the table. Ask your database administrator to detect and correct fragmentation in the EIM tables.

Always delete batches from EIM tables upon completion. Leaving old batches in the EIM table wastes space and can adversely affect performance. For other suggestions on working with batches, see Limiting the Number of Records and Rows for Merge Processes.

Batch Processing Optimization for EIM

This section suggests ways in which you can optimize EIM batch processing. Try using different batch sizes. Large batch sizes are often not efficient. For import and delete processes that use the DELETE EXACT parameter, use approximately 20,000 rows in a single batch.

Limiting the Number of Records and Rows for Merge Processes

You can improve performance by limiting the number of records in a batch. For information, see Siebel Performance Tuning Guide.

Using Batch Ranges

Try using batch ranges (BATCH = x–y). This allows you to run with smaller batch sizes and avoid the startup overhead on each batch. The maximum number of batches that you can run in an EIM process is 1,000.

For IBM DB2, load a few batches of data into the EIM table and run EIM for just one of these batches. This primes the statistics in the DB2 catalogs. Afterward, do not update statistics on the EIM tables, and run EIM with the parameter UPDATE STATISTICS = FALSE in the .IFB file. This helps achieve consistent performance results when running EIM. See Parameter Settings Optimization for EIM for other suggestions about parameters.

Run-Time Optimization for EIM

This section describes the ways you can optimize EIM performance at run time.

Parallel Processing

Run independent EIM jobs in parallel. Two or more EIM processes can be started simultaneously by using the Siebel Server Manager.

A special setup is not required to run EIM processes in parallel. For parallel processing, the following conditions must be met:

  • No duplicate unique keys between runs for inserts.

  • No duplicate updates or deletes between runs.

  • No lock escalations on either EIM tables or target tables can be tolerated. Set LOCKLIST and MAXLOCKS as high as necessary to prevent this.

    Note: If you run EIM jobs in parallel on the same base tables, you might encounter unique constraint errors if you have the same values for the unique index fields in batches being processed by two different EIM jobs.
Caution: Running EIM processes in parallel on a DB2 database may cause a deadlock when multiple EIM processes access the same EIM table simultaneously. To avoid this potential problem, set the UPDATE STATISTICS parameter to FALSE in the EIM configuration file. The UPDATE STATISTICS parameter is applicable only for DB2. For other suggestions, see Parameter Settings Optimization for EIM.

For more information on parallel processing, see Siebel Performance Tuning Guide.

Transaction Logging

Consider disabling the Enable Transaction Logging system preference in the Administration - Siebel Remote screen during the EIM run. Switching off transaction logging improves performance; however, this benefit must be balanced with the need for mobile users to reextract afterward. To disable transaction logging, complete Step 2 in Importing an Initial Batch of Legacy Data.

Parameter Settings Optimization for EIM

This section discusses ways that you can optimize EIM performance through parameter settings.

USING SYNONYMS Parameter for Optimizing EIM

Ignore account synonyms. Set the USING SYNONYMS parameter to FALSE in the .IFB file to indicate that account synonyms can be ignored during processing. This logical operator indicates to EIM that account synonyms do not require processing during import, thus reducing the amount of processing. Do not set the USING SYNONYMS parameter to FALSE if you plan to use multiple addresses for accounts. Otherwise, EIM will not attach addresses to the appropriate accounts. You can use EIM_ACCOUNT to import accounts with multiple addresses and then specify the primary address for an account by setting ACC_PR_ADDR to Y.

Trace Flag Settings for Optimizing EIM

Generate a task log to identify slow-running steps and queries by using Trace Flags. To use Trace Flags, set Error Flags=1, Trace Flags=1, and SQL Trace Flags=8. Rerun the batch and use the resulting task log to determine which steps and queries are running especially slowly. For additional information on trace flag settings, see Trace Flag Settings.

Database Server Optimization for EIM

The overall performance of EIM is largely dependent on the overall performance of the database server. To achieve optimal database server performance, it is critical that the tables and indexes in the database be arranged across available disk devices in a manner that evenly distributes the processing load.

The mechanism for distributing database objects varies by RDBMS, depending on the manner in which storage space is allocated. Most databases have the ability to assign a given object to be created on a specific disk.

A redundant array of independent disks (or RAID) can provide large amounts of I/O throughput and capacity, while appearing to the operating system and RDBMS as a single large disk (or multiple disks, as desired, for manageability).

The use of RAID can greatly simplify the database layout process by providing an abstraction layer over the physical disks while achieving high performance. Regardless of the RDBMS you implement and your chosen disk arrangement, be sure that you properly distribute the following types of database objects:

  • Database log or archive files.

  • Temporary workspace used by the database.

By following these suggestions, you should be able to improve the performance of the database server.