[ https://issues.apache.org/jira/browse/AMQ-5748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14517981#comment-14517981 ]
Timothy Bish commented on AMQ-5748: ----------------------------------- Have a look at StoredDestinationMarshaller in MessageDatabase.java (1909) for some insights into handling version updates. > Add the ability to get Message Size from a Message Store > -------------------------------------------------------- > > Key: AMQ-5748 > URL: https://issues.apache.org/jira/browse/AMQ-5748 > Project: ActiveMQ > Issue Type: New Feature > Components: Broker > Affects Versions: 5.11.1 > Reporter: Christopher L. Shannon > Priority: Minor > > Currently, the {{MessageStore}} interface supports getting a count for > messages ready to deliver using the {{getMessageCount}} method. It would > also be very useful to be able to retrieve the message sizes for those counts > as well for keeping track of metrics. > I've created a pull request to address this that adds a {{getMessageSize}} > method that focuses specifically on KahaDB and the Memory store. The KahaDB > store uses the same strategy as the existing {{getMessageCount}} method, > which is to iterate over the index and total up the size of the messages. > There are unit tests to show the size calculation and a unit test that shows > a store based on version 5 working with the new version (the index is rebuilt) > One extra issue is that the size was not being serialized to the index (it > was not included in the marshaller) so that required making a slight change > and adding a new marshaller for {{Location}} to store the size in the > location index of the store. Without this change, the size computation would > not work when the broker was restarted since the size was not serialized. > Note that I wasn't sure the best way to handle the new marshaller and version > compatibilities so I incremented the KahaDB version from 5 to 6. If an old > version of the index is loaded, the index should be detected as corrupted and > be rebuilt with the new format. If there is a better way to handle this > upgrade let me know and the patch can certainly be updated. -- This message was sent by Atlassian JIRA (v6.3.4#6332)