Siebel Remote and Replication Manager Administration Guide > Troubleshooting Siebel Remote > Using Troubleshooting Utilities >

Using the Endtxnutl Utility to Adopt Orphaned Records


This topic describes how to use the Endtxnutl utility to create parent records so that orphan records synchronize. A database transaction can create an orphan record, which is a type of child record that is not associated with a parent record. The Transaction Processor server component treats an orphan record as an incomplete transaction that Siebel Remote must not synchronize. Orphan records also cause the transaction log table (S_DOCK_TXN_LOG) to grow and degrade performance.

It is recommended that you frequently use the Endtxnutl utility, depending on how frequently the data traffic creates orphan records. You can run endtxnutl as often as you require without interrupting Siebel Remote operations. Siebel Remote runs endtxnutl one time every 24 hours, by default.

For more information about:

  • The Endtxnutl utility and orphan records, see Siebel Technical Notes on My Oracle Support, including Technical Note 634 and Troubleshooting Steps 38.
  • The S_DOCK_TXN_LOG table, see Modifying the S_DOCK_TXN_LOG Table.

To use the Endtxnutl utility to adopt orphaned records

  1. Configure parameters for the session.

    For more information, see Configuring Session Parameters for a Utility.

  2. To run the Endtxnutl utility, enter the following command in a single line:

    endtxnutl /u username /p password /a Siebel_server_name /T minimum_transaction_age_in_hours /o output_file_name

    Use parameters described in the following table.

    Parameter
    Required
    Description

    u username

    Required

    The login name for the administrator.

    p password

    Required

    The password for the administrator.

    a Siebel_server_name

    Required

    The name of the remote server that the Endtxnutl utility uses to scan for transactions in the S_DOCK_TXN_LOG table that include routing and docking information.

    t minimum_transaction_age_in_hours

    Optional

    The Endtxnutl utility runs only on orphan records from transactions that Siebel Remote started at least by the number of hours that you specify in this parameter. The default value is 24. The range of acceptable values is from 24 through 168.

    o output_file_name

    Optional

    If you do not specify a path, then the Endtxnutl utility creates the endtxnutl.out output file in the current folder.

The following is an example of a typical command that runs the Endtxnutl utility:

endtxnutl /u sadmin /p sadmin /a siebsrvr78 /o d:\endtxnutl.out

where:

  • endtxnutl is the name of the utility.
  • sadmin is the user name.
  • sadmin is the password.
  • siebsrvr78 is the name of the Siebel Server.
  • d:\endtxnutl.out is the name of the output file.

How the Endtxnutl Utility Finds an Adoptive Parent

The Endtxnutl utility scans the S_DOCK_TXN_LOG table for transactions that do not contain a committed parent transaction and that are at least a set number of hours old. For each transaction that meets these criteria, endtxnutl inserts a dummy parent transaction in the transaction log. When the Transaction Processor detects the inserted parent transactions, it processes the child records correctly.

Situations That Create Orphans

The following situations might result in the creation of an orphan record:

  • Using Siebel Audit Trail on the Products business component
  • Using Siebel Audit Trail on the Admin Sales Tool business component
  • Using Siebel Audit Trail on business components that use the CSSBCUser class
  • Importing a Product Model
  • Defining remote clients and Positions
  • Failure of a server component

Querying for Orphan Records

To examine orphan records in the server database, you can use an SQL query. This query locates rows in the S_DOC_TXN_LOG table that meet any of the following conditions:

  • Row ID is not equal to the parent transaction ID
  • The parent transaction ID does not equal the row ID of any other row in the table

To query for orphan records

  1. Query for the orphaned records:
    • To query in Oracle, use the following command:

    SELECT B.TXN_ID, B.ROW_ID, B.PAR_TXN_ID, B.OPERATION, B.ITEM_NAME FROM S_DOCK_TXN_LOG A, S_DOCK_TXN_LOG B WHERE A.ROW_ID(+) = B.PAR_TXN_ID AND A.ROW_ID IS NULL

    • To query in DB2 or MS SQ Server, use the following command:

    SELECT B.TXN_ID, B.ROW_ID, B.PAR_TXN_ID, B.OPERATION, B.ITEM_NAME FROM S_DOCK_TXN_LOG A RIGHT OUTER JOIN S_DOCK_TXN_LOG B ON B.PAR_TXN_ID = A.ROW_ID WHERE A.ROW_ID IS NULL

  2. If you find a gap in transaction ID numbers, then use the Txnskip utility.

    An orphan record does not necessarily cause a gap in transaction ID numbers. For situations where you find a gap, you can use the Txnskip utility instead of the Endtxnutl utility. For more information, see Using the Txnskip Utility to Examine Skipped Transactions.

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