[
https://issues.apache.org/jira/browse/AMQ-5748?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14514641#comment-14514641
]
ASF GitHub Bot commented on AMQ-5748:
-------------------------------------
GitHub user cshannon opened a pull request:
https://github.com/apache/activemq/pull/92
Added a getMessageSize method to MessageStore
Added a getMessageSize method to MessageStore to support retrieving the
total message size of all stored messages for a destination. This is useful
for metrics.
This resolves https://issues.apache.org/jira/browse/AMQ-5748
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/cshannon/activemq AMQ-5748
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/activemq/pull/92.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #92
----
commit 018930ab2a438b1e9d32c3dae9410c59962807e6
Author: Christopher L. Shannon (cshannon) <[email protected]>
Date: 2015-04-27T18:24:16Z
Added a getMessageSize method to MessageStore to support retrieving the
total message size of all stored messages for a destination.
This resolves https://issues.apache.org/jira/browse/AMQ-5748
----
> 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)