activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tim Bain (JIRA)" <>
Subject [jira] [Commented] (AMQ-6099) Allow broker to read any OpenWire version from KahaDB
Date Tue, 22 Dec 2015 05:05:46 GMT


Tim Bain commented on AMQ-6099:

I was imagining that you'd simply try your best guess (the version that will be used for writing
all new messages, since that will eventually be the only version in use), detect if it failed
and move on to your next-best guess, and keep going till you hit one that worked.

It wouldn't have to be all that performant since you should only be doing this for a short
time before you finish consuming the old-version messages and get to a homogeneous state,
so you could afford to make multiple parsing attempts for each old-version message, to throw/catch
exceptions, and do other less-efficient things, as long as none of them end up in the code
path for consuming current-version messages.

> Allow broker to read any OpenWire version from KahaDB
> -----------------------------------------------------
>                 Key: AMQ-6099
>                 URL:
>             Project: ActiveMQ
>          Issue Type: New Feature
>          Components: KahaDB
>    Affects Versions: 5.x
>            Reporter: Tim Bain
> The current KahaDB implementation only allows a single OpenWire version to be read from
the store.  This works fine during normal operations, but when a user upgrades to a version
of ActiveMQ that uses a different OpenWire version, the new broker is unable to read any persisted
messages from the store because of the version mismatch, as described in AMQ-5995.
> Broker upgrades are going to happen, and the requirement that they be done with an empty
message store, or that the user apply temporary workarounds like running the old broker in
a networked configuration that's not the standard config for the cluster, leads to a less-than-satisfactory
experience during the upgrade. As much as possible, broker upgrades should be seamless; sometimes
that's not possible, but in this case it seems like code that would be able to read any version
of OpenWire but only write the current one (and that could be less-efficient with older versions
if necessary) wouldn't be all that hard and would eliminate this problem.

This message was sent by Atlassian JIRA

View raw message