Jump to content

How many RTC's can run parallelly What if 2 contrast events arrive parallelly


darshan kamat

Recommended Posts

Lets say if I have a scenario wherein I receive 2 events simultaneously and they change concepts in the working memory .

Now change in concepts from event A will not trigger any rule which is affected by Event B's arrival,until this RTC completes and the next RTC will begin at arrival of event B wherein the changes made to concepts from event A will take effect and rules will fire if they evaluate to true

Eg : If event Credit arrives ,Rules get fired as per logic bt during itsexecuting Event Debit arrives.RTC of Debit event will wait till all the rules in rule Agenda are fired.post which RTC of Event Debit will begin .

By this logic there will be only 1 RTC at any given point of time .Is this understanding correct

Link to comment
Share on other sites

  • 1 month later...

The behavior depends on your configuration.

- Do you have concurrentRTC enabled

- Is Cluster.Lock implemented in preprocessor of the event, and what is the key of Lock.

With concurrentRTC enabled, multiple RTC are allowed at the same time. Cluster.Lock should be implemented in preprocessor properly to prevent concept being modified by multiple threads.

Regards,

Hui

Link to comment
Share on other sites

  • 1 year later...

Yes, it is correct.

If concurrent RTC is disabled then BE engine takes care that only one RTC is executed at a time and there is no need of explicit locking.

But, if it is enabled then locking mechanism is required.

Also, you can make use of thread affinity rule function such that events with same ID will be assigned to same thread and are processed sequentially.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...