Planning Batch Processing When Using Siebel Remote

Long-running batch jobs can create transaction gaps in the Siebel Remote Master Transaction Log. If the wait-time for the missing transactions expires, Siebel Remote's Transaction Processor skips the missing transactions. The skipped transactions are not routed to mobile users.

This 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. This increases 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 can 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. This 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.

For additional information on understanding gaps in the transaction log, see the Technical Note: Siebel Remote Transaction Gaps on SupportWeb.

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.

If skipped transactions occur when no batch jobs are running, the gap is most likely permanent and is caused by failed commits. If the gap is permanent, nothing is lost, and mobile users receive the correct information.

Set a Lower BatchSize for Assignment Manager

Setting a lower BatchSize reduces the number of records processed before each commit. This reduces the commit times and the risk of exceeding the wait-time. If performance requires that you increase the BatchSize parameter, do so only after analyzing the number of Assignment Manager threads that you have under average and peak workloads. The lower the number of 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.