Hi Everyone, I have some questions on the threading architecture, hopefully someone knows the answers :)
1) What happens if I block the thread that raises events on DelegatingCacheListener (i.e. EntryDeleted, EntreyInserted etc)?
a. Will subsequent events sill get fired?
b. Will local cache updates from a remote cache still get processed?
2) Should I always quickly exit any thread coherence will raise an event on?
(I'm using v22.214.171.124 if that helps)
Thanks for any help
We use the same basic threading model for Java, .Net and C++. Events are emitted on a per-service dedicated event dispatcher thread. If your event processing time exceeds the event delivery rate we will buffer incoming events within the client, but will not deliver the next event until you have finished processing the former event. Offloading to your own thread pool would be advisable for long running event processing logic. When offloading and processing events in parallel be aware that this may change the order in which the events are processed and thus the apparent order could be changed so you'd still want to keep events for the same key (or associated keys) bound to the same thread within your pool.