February 14, 2020

How caching work in Siebel?

In any online transaction processing system like CRM most of the processing time is taken in finding the right record in database. No matter what database optimization technique you implement, your db processing time would be the highest among the time spent in web server and application server.
Siebel Database




This is where Siebel caching steps in. One can simply set "Cache Data" flag on the business component to cache data on the application object manager. You may find it turned on for Internal Product business component and some picklist bus comps.

On turning this flag on, records gets cached in application object manager when first time the records are queried, and next time if same record is requested siebel server returns the data from memory instead of checking with database.

However that means we can only use it for static data which doesn't change often, if record has been updated using some other BusComp then new data wont be available due to caching.

In scenarios where there is a need to access latest data from cached context one can use a new business component without caching or use a script with ExecuteQuery(ForwardOnly); This forces siebel to get the latest data from cached business component.

var bo = TheApplication().GetBusObject("Cached BO");
var bc = bo.GetBusComp("Cached BusComp");
with (bc){
ClearToQuery();
SetSearchExpr("[Name]='Test'");
ExecuteQuery(ForwardOnly);
SetSearchExpr("[Name]='Test'");
ExecuteQuery(ForwardOnly);
}
Above script will execute two SQL statements on the Database even if buscomp is cached.

There are otherways for specifically eConfigurator caching which is highly recommended to be configured for telecom clients.

https://docs.oracle.com/cd/E14004_01/books/PerformTun/PerformTunConfigISS14.html

Happy Siebel 🙂

No comments :

Post a Comment