Marcel Ruff wrote:
Although we see this bug with volatile messages, I believe it would affect all users.
The problem was that when one client subscribed multiple times to the same message (xpath), the subscription-id was wrong when a published message matched.
For example, if I subscribed looking for //foo 3 times from the same client, then publish a message that matches //foo, from another client, the first one will get 3 update callbacks, but depending on the timing, the subscription-id will be duplicated or wrong for the given subscription.
Attached is a patch which includes a comment in the relevant section on what was happening specifically.
It's not pretty, but it works for now for me. A proper fix will require some slight interface changes in the callback worker classes.
David,
currently Michele Laghi and myself do on a seperate cvs branch a major core redesign of xmlBlaster . Features like pipelining persistent and transient queues with cache and swapping support, message expiry and dispatcher plugins are developed. Your volatile problems are addressed there as well.
Now we have a conflict:
(1) Putting all efforts into the new development and merge the changes a.s.a.p back into the main cvs branch. -> This option is the pereferred one for Michele and myself
(2) Fixing volatile etc. in the main branch. -> This may be of interest for users under pressure to deliver their application
For the moment we put all effort into (1) and hope people with problem (2) find a work around. If complains grow we need to discuss approach (2).
Schedule of merging (1) into cvs main branch is enbetween minimum 1 week to maximum 1.5 month.
regards,
Marcel