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 478182.1 and 477816.1 (Article ID) on My Oracle Support. These documents were previously published as Siebel Technical Note 634 and Siebel Troubleshooting Steps 38, respectively.
- The S_DOCK_TXN_LOG table, see Modifying the S_DOCK_TXN_LOG Table.
To use the Endtxnutl utility to adopt orphaned records
- Configure parameters for the session.
For more information, see Configuring Session Parameters for a Utility.
- 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.
|
|
|
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 siebsrvr81 /o d:\endtxnutl.out
where:
- endtxnutl is the name of the utility.
sadmin is the user name.
- sadmin is the password.
- siebsrvr81 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 Siebel 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
- 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 IBM DB2 or Microsoft SQL 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
- 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.
|