best grammar app

What is Bizstore - Reporting and transient information management

Submitted by Abhishek on Thu, 2011-05-12 13:04

Savvion Developers have been struggeling with Database issues especially with respect to the huge list of tables which make savvion work. To understand how the tables are laid out and maintained, its essential to understand the BizStore Engine. A number of companies are actually struggling with BizStore exception leaving their reporting system paralyzed. Lets have a sneak peek into savvion Database. Please note this is a generic understanding (totally based on my experience) and actual details could vary from savvion version to version.

When the designers of Savvion were thinking about how to optimize the user experience, they decided to have two kinds of tables – Transient and Reporting. At any given point of time you would have more historic details than current details and its absolutely makes sense to separate them out. For All “alive” instances, information is available in Transient tables whereas for all instances (open and closed) information is available in reporting tables. In other words, if a process instance ends, you can find its details only in the reporting tables.

So how do you know which are reporting tables and which are transient. Well Normally, if you see a table starting with BIZLOGIC_ and a table with same name without the BIZLOGIC_ prefix, then the table without the prefix is the reporting table and the one with prefix is the transient tables. For example BIZLOGIC_PROCESSINSTANCE and PROCESSINSTANCE happen to be Transient and Reporting tables respectively. If you want to checkout, create a new instance check both tables then complete it and check again.

Interesting? Well there is more. Now how do these two sets of tables remain in sync? Here comes Bizstore. BizStore is a separate process whose role is to update the reporting tables based on instance data. The Bizlogic workflow engine just interacts with the transient tables (and deletes data once the process completes – again this is my understanding ... implementation could be different). So how does the BizStore engine know when to update the reporting engine? Thats done with Events. Going through my Article on EVENTS could be helpful at this stage.

Whenever an event is trigger it goes and sites in BIZEVENT table. BizStore engine reads all the newly generated events and populates the Reporting tables. It uses the counter table to keep track of the last processed event

Normally, i would discourage reading/updating the database tables directory. Often developers do the mistake of reading the tables (especially the wrong ones) and end up showing the wrong set of information. Savvion comes with Elegant services like QueryService and BizManage API’s which would take care of referencing the right set of datastructures.

Abhishek Mishra
Good experience in working with BPM technologies like Savvion, JBPM. Founder and Chief Editor of Founder of Savvion Business Manager Mobility Framework Savmobify| View my BPMGeek Profile
best grammar app

About BPMGeek

BPMGeek is an initiative to collaborate and communicate with the growing Business process management community out there. The goal is to help developers connect with experts, ask questions, post their learning and get understanding of BPM Concepts. Often tool specific knowledge of niche areas end up developers perplexed and confused - especially when there are very less number of resources available. We will be coming up several several new features. Have a look at our Roadmap here

BPMGeek is an independent entity not associated with any Product. All BPM product professionals are invited to contribute. The Logos and Names used across the site belong to their respective owners. The viewpoints mentioned by Individual contributors are their own. BPMgeek cannot be held liable for any issues arising out of it.

BPMgeek is promoting the Nounshoun English Grammar App - developed by Constellation Software.