Siebel Deployment Planning Guide > Application-Level Deployment Planning >
Planning Batch Processing When Using Siebel Remote
Long-running batch jobs can create transaction gaps in the Master Transaction Log for the Siebel Remote module for Oracle's Siebel Business Applications. If the wait-time for the missing transactions expires, the Transaction Processor component skips the missing transactions. The skipped transactions are not routed to mobile users.
Batch jobs could be performed by Siebel Assignment Manager, Siebel EIM, or other components.
For more information on understanding gaps in the Master Transaction Log, see 477585.1 (Article ID) on My Oracle Support. This document was previously published as Siebel Technical Note 499.
For an example with Siebel Assignment Manager, gaps in the Master Transaction Log can occur as follows:
- Assignment Manager is processing a batch of transactions.
- Assignment Manager obtains a group of transaction IDs. These are issued in numeric, sequential order.
- Assignment Manager then commits these transactions. This process takes several minutes.
- In the meantime, another process obtains a transaction ID.
- The process commits the transaction and writes it to Siebel Remote's Master Transaction Log. A sequence gap is created because the Assignment Manager transactions have not yet been written to the Master Transaction Log.
- Transaction Processor detects the gap and waits a specified period called the wait-time (default is 600 seconds).
- The wait-time expires before Assignment Manager completes the commit and writes the missing transactions to the Master Transaction Log.
- When the wait-time expires, Transaction Processor skips the missing transactions and moves on to the transaction from the other process.
- Transaction Processor logs information about the missing transactions. The Assignment Manager transactions are not routed to mobile users, even though they are later written to the Master Transaction log.
Conditions That Can Cause Missed Transactions
The following conditions in Assignment Manager can cause increased commit times. Longer commit times increase the risk that the Transaction Processor wait-time will expire before the commit occurs, and Transaction Processor will not process all the transactions in the transaction log.
Increasing the Assignment Manager Batch Commit Parameter
The default batch commit size (BatchSize) for Assignment Manager is 100. After processing 100 rows, transactions are committed to the database. If the batch commit size is increased, this increases the risk of exceeding the wait-time.
Increased Number of Batch Assignment Threads
When multiple Assignment Manager threads are logging transactions, this creates a latency in accessing the transaction log table. This latency increase the risk of exceeding the wait-time.
Complicated Assignment Rules
When Assignment Manager has to resolve complicated assignment rules, this can increase commit times. Longer commit time together with the conditions above can increase the risk of exceeding the wait-time.
Avoiding Missed Transactions
To avoid exceeding the Transaction Processor wait-time during batch processing, adopt the following best practice recommendations. Experiment with applying them in combination to achieve the best performance while minimizing the risk of exceeding the wait-time.
Monitor the Transaction Processor Logs
As you apply the best practices techniques described below, use the Transaction Processor logs to see the result and help you optimize system performance.
Transaction Processor writes these warning messages to its log file when it skips transactions:
GenericLog: GenericError: 0003-11-18 17:04:51
WARNING: A transaction gap has been detected after transaction 122.
Probable Cause: There maybe long-running transactions in your system which are not committing transactions within the specified duration (600 sec)
Recommendation: Reduce the batch size of your transactions. This will allow the transactions to be committed to the database within the wait-time window.
If skipped transactions occur while a batch job is running, investigate the cause. The skipped transactions may not have been routed to mobile users. If so, mobile users may have to re-extract the database.
Set a Lower BatchSize for Assignment Manager
Setting a lower BatchSize value reduces the number of records processed before each commit. Reducing this figure reduces the commit times and the risk of exceeding the wait-time. If your performance goals require you to increase the BatchSize parameter, do so only after analyzing the number of Assignment Manager threads that you have under average and peak workloads. The fewer Assignment Manager threads, the higher you can set the BatchSize parameter.
You can get performance statistics on Assignment Manager threads by raising Assignment Manager's log level. For information on raising the log level, see Siebel System Administration Guide.
Serialize Batch Jobs
Consider staggering the start time of batch jobs. Running batch jobs in staggered or serial order can reduce the risk of exceeding the wait time.