|Topic||State charts and configuration of message and topic lifecycles|
In xmlBlaster we define a topic as a single key oid whereas a message instances are the single messages published (probably with identical oid). The message instances build a history queue of a topic.
Message lifecycle overview
Every message key oid defines a topic. You publish any number of messages with the same oid, those MsgUnit instances are distinguished by the unique receive timestamp.
The messages are queryable from the history queue. The history queue only contains references to the real messageUnit.
Every subscription puts a reference of a messageUnit into the client specific callback queue, from where the messages are sent to the client.
The real messageUnit (the meat) is handled by the cache implementation. The pointers on the cache entries are reference counted. If no weak reference exists anymore the cache entry is destroyed.
If a cache entry is swapped to harddisk, the weak references are set to null by the Java virtual machine. In this case, the access forces a lookup and the message is swapped back to the cache.
The logical states of a topic (= messages with same key oid)
The above states break down to internal conditions.
Internal conditions of a topic:
(*) XPATH subscriptions don't prevent the topic from going to DEAD
The configuration of topics and messages are done by publishing a message and setting certain publish QoS tags:
NOTE: Configuration parameters are specified on command line (-someValue 17) or in the
xmlBlaster.properties file (someValue=17). See requirement "util.property" for details.
This page is generated from the requirement XML file xmlBlaster/doc/requirements/engine.message.lifecycle.xml
Back to overview