Siebel Enterprise Integration Manager Administration Guide > EIM: Examples of Common Usage > Other Examples >

Example: Transaction Logging with Row-by-row Processing versus Set-based Processing


Transaction logging is enabled and disabled from within the Remote System Preferences view in the Administration - Siebel Remote screen. The preference is called Enable Transaction Logging. You can also adjust the transaction logging system preference setting by changing the LOG TRANSACTIONS parameter in the EIM configuration file. For more information, see Process Section Parameters Generic to All EIM Processes.

LOG TRANSACTIONS and SET BASED LOGGING Parameters

EIM performs row-by-row (RBR) transaction logging when LOG TRANSACTIONS is set to TRUE and SET BASED LOGGING is set to FALSE in the .IFB file. In row-by-row logging mode, EIM fetches all the data to the client.

Most of the time, SET BASED LOGGING is not explicitly set. When SET BASED LOGGING is not explicitly set, the Enable Transaction Logging system preference in the Administration - Siebel Remote screen is used to determine the processing method.

When Enable Transaction Logging is disabled, all operations (insert, update, and delete) are performed in set-based mode. If you explicitly set LOG TRANSACTIONS = FALSE in the .IFB file, then EIM does not log any transactions into the Master Transaction Log table.

When Enable Transaction Logging is enabled, all inserts and deletes are performed in set-based mode, while updates are performed in RBR mode. When Enable Transaction Logging is checked, EIM logs transactions into either the .DX files or the S_DOCK_TXN_LOG table, depending on the setting for LOG TRANSACTIONS TO FILE in the .IFB file.

When SET BASED LOGGING is explicitly set, EIM uses the value of this parameter to determine the processing mode. When SET BASED LOGGING is TRUE, all operations (insert, update, delete) are performed in set-based mode. When SET BASED LOGGING is FALSE, all operations are performed in RBR mode. For import and delete processes, it is not recommended that the SET BASED LOGGING parameter be set to TRUE because in most cases, there is no reason to set this parameter explicitly. For merge processes, SET BASED LOGGING must be set to FALSE for transaction logging to work properly.

To log every transaction separately, EIM changes its operation mode to RBR.

Logging Locations for LOG TRANSACTIONS and LOG TRANSACTIONS TO FILE

With RBR processing, data is logged according to one of three scenarios:

  1. EIM logs transactions into S_DOCK_TXN_LOG table or .DX files if:
    • Remote System Preference Enable Transaction Logging is checked
      • LOG TRANSACTIONS = TRUE in the .IFB file (default)
      • LOG TRANSACTIONS TO FILE = TRUE in the .IFB file (default)

        If LOG TRANSACTIONS = TRUE and LOG TRANSACTIONS TO FILE = TRUE (which are the default values), EIM logs a transaction into the .DX files, which are stored in <SiebelFileSystem\eim> folder. EIM creates the "marker" transaction in the S_DOCK_TXN_LOG table.

        S_DOCK_TXN_LOG.LOG_DATA1 (or LOG_DATA_2, 3, 4) stores the name and the location of the .DX file as in the following example:

        N128*d:\15051sia\FS\eim\1-CP-1.dx

        In this example, 1-CP-1.dx is the name of the .DX file and it is located in the \\15051sia\FS\eim folder.

        Once the data is created in the .DX file and the marker transactions have been created in the S_DOCK_TXN_LOG table, Transaction Processor (TxnProc) captures the .DX files from the \eim folder and brings them into the TxnProc folder for Transaction Router (TxnRouter) to process.

  2. EIM logs transactions into the S_DOCK_TXN_LOG table, and eventually, TxnProc or TxnMerge creates the .DX file in the <SiebSrvr\Docking\TxnProc> folder if:
    • LOG TRANSACTIONS = TRUE in the .IFB file (default)
    • LOG TRANSACTIONS TO FILE = FALSE in the .IFB file
  3. EIM does not log any transactions into the S_DOCK_TXN_LOG table or in the .DX file if:
    • LOG TRANSACTIONS = FALSE in the .IFB file

      This is the case regardless of what value is defined for LOG TRANSACTIONS TO FILE.

      The LOG TRANSACTIONS parameter is explicitly used to control whether changes made by EIM to the Siebel database should be visible to remote clients (by logging transactions for use by the Docking Manager, which synchronizes the Siebel database with remote clients).

When to Use Row-by-Row Processing

For import and delete processes, you should let EIM determine which mode to use. EIM will use the method with the best performance for the functionality requested. For initial data loading, you can disable transaction logging for improved performance (EIM will use set-based mode for all operations). For ongoing operations with Mobile Web Clients, transaction logging should be enabled (EIM will choose set-based logging for inserts and deletes, and RBR for updates).

For merge processes with transaction logging enabled, you must explicitly set EIM to run in RBR mode in order for transaction logging to work properly.

The following are examples of cases when RBR logging should be used:

  • Running an EIM import task using the COMMIT OPERATIONS parameter.

    NOTE:  COMMIT OPERATIONS is useful only for RBR logging.

  • Running an EIM merge task. To enable transaction logging for an EIM merge process, the EIM merge process runs in ongoing (row-by-row) mode.

Advantages and Disadvantages of Using RBR Logging

Advantages of RBR logging include the following:

  • Since EIM inserts all the information (data as well as column info) into the S_DOCK_TXN_LOG table, in cases for which mobile clients bring about synchronization problems, RBR logging is beneficial in making troubleshooting easier.
  • The row-by-row mode is required for logging update transactions. If the SET BASED LOGGING parameter is not set, then EIM runs in RBR for update operations when transaction logging is enabled. RBR is also required for merge processes when transaction logging is enabled.

    NOTE:  When running merge processes with transaction logging, SET BASED LOGGING = FALSE is required. If EIM performs a merge with set-based logging instead of RBR, transactions are not written to S_DOCK_TXN_LOG even though TRANSACTION LOGGING is set to TRUE. The merge works correctly, but remote clients cannot get the transactions and are out of synch as a result.

A disadvantage of RBR logging is that RBR logging affects performance, especially with large imports and deletes.

Siebel Enterprise Integration Manager Administration Guide Copyright © 2013, Oracle and/or its affiliates. All rights reserved. Legal Notices.