As per JBMESSAGING-232 I have introduced a new table CHANNEL_MAPPING which maps between durable subscriptions/queues and the channel id of the corresponding channeland it also provides a surrogate key for the destination.
This means that when persisting messages we no longer need to persist the destination and reply_to in the same table - we just persist the relevant ids in the table. This should aid indexing of those columns and take up less storage in the db. (I believe this was a known problem with JBossMQ).
Also the channel id is not an int rather than a string.
This is managed by ChannelMapping service which is basically an amalgamation of CoreDestinationManager and DurableDurableSubscriptionStore.