Hi Radu, the consumable plugin is described in the requirements
http://www.xmlblaster.org/xmlBlaster/doc/requirements/msgDistributor.plugin.ConsumableQueue.html
and
http://www.xmlblaster.org/xmlBlaster/doc/requirements/msgDistributor.plugin.html
Per default the plugin is already configured. To see how to invoke it have a look at the script
demo/javaclients/script/consumableQueue.xml
you can invoke it to test from demo/javaclients/script:
java javaclients.script.XmlScript -requestFile consumableQueue.xml
To cover the behaviour you described it is probably best to make a copy of the plugin
org.xmlBlaster.engine.distributor.plugins.ConsumableQueuePlugin
and modify it according to your needs.
To distinguish wether one message has to be distributed to one or more clients I would set a flag in the client properties in the publishQos (for example
'_distribution' as the key of the property and 'SINGLE' or 'MULTI' as the two possible values.
In your modified plugin you would then look at this client Property and take the appropriate actions thereafter ('SINGLE' would have the current behaviour and 'MULTI' would distribute it to all subscribers found).
Hope that helps Cheers Michele
Radu Maierean wrote:
Hi,
we need to make use of a certain feature of the XMLBlaster. suppose we have a few subscribers registered for a particular topic (it is actually a few instances of the same application, which run in load balancing mode). we need to create a scenario in which a publisher posts a message on the topic, but we only need one single subscriber to receive it.
the way that we see it is, the publisher can dictate somewhere (possibly in the <qos> tag), at the time the posted message is created, whether that message is supposed to be received by all the subscribers, or by just one of the registered subscribers. practically, we want to use XMLBlaster to access distributed database queries: if the message is some sort of a SELECT command, then one single response from any of the databases should be enough (considering the databases are sync'ed); if the message is an INSERT or an UPDATE, we need all the subscribers to perform the command on their local databases.
i know you have some work done on that ConsumableQueue concept, but i didnt quite understand how that works. i also know that theres a method that goes around, with doing some sort of administrative get()'s, but we would definitely prefer the subscriber push (or callback, as you call it). can you provide a step-by-step approach on how to install the ConsumableQueue plugin and how to publish, register and receive a message in the scenario above. even if it's not fully tested, we may volunteer to do that for you.
thanks!
r
Radu Maierean
JamboTECH phone: 818-676-3452
email: [EMAIL PROTECTED]
-- Michele Laghi mailto:[EMAIL PROTECTED] tel. +46 8 7492952 / mob. +46 70 4103964 http://eclettic.tripod.com http://www.xmlBlaster.org
