Teiid exposes a bean that implements the org.teiid.events.EventDistributor interface. It can be looked up in JNDI under the name teiid/event-distributor-factory. The EventDistributor exposes methods like dataModification (which affects result set caching) or updateMatViewRow (which affects internal materialization) to alert the Teiid engine that the underlying source data has been modified. These operations, which work cluster wide will invalidate the cache entries appropriately and reload the new cache contents.
|Change Data Capture|
If your source system has any built-in change data capture facilities that can scrape logs, install triggers, etc. to capture data change events, they can captured and can be propagated to Teiid engine through a pojo bean/MDB/Session Bean deployed in JBoss AS engine.
The below shows a code example as how user can use EventDistributor interface in their own code that is deployed in the same JBoss AS VM using a Pojo/MDB/Session Bean. Consult JBoss AS documents deploying as bean as they out of scope for this document.
|Updating Costing information|
The EventDistributor interface also exposes many methods that can be used to update the costing information on your source models for optimized query planning. Note that these values are volatile and will be lost during a cluster re-start, as there is no repository to persist.