Hi, just wondered peoples thoughts on this situation?

The queue mbeans have an operation to view a list of the messages on the
queue, specifying low/high message number of interest: viewMessages(int
fromIndex, int toIndex). These numbers are indexed by position on the queue.

Using the results of this operation to determine a message's AMQ message ID,
you can then view the contents of a message using viewMessageContent(long
msgID) indexed by the AMQ message ID long value gained from looking at the
results of the viewMessages operation.

In the new UI for the console I am currently doing the viewMessages()
operation across the entire positive Integer range and displaying a list of
all messages on the queue for users, and when they use the
viewMessageContent() operation the UI is implicitly fetching the AMQ ID from
the selected message to perform the operation. As such, users are no longer
exposed to the difference in indexing (though anyone using JConsole etc
still will be).

The main issue remaining would be that the viewMessages() operation is
inherantly limited to the first 2^31 undelivered messages on the queue at
any given time. When I originally noticed that viewMessages was using ints
and viewMessageContent was using longs i had thought the situation was worse
than it actually is, because it mentioned in the interface that they are
indexed differently(though becomes obvious after use). However, some of the
other related methods such as getMessageCount() are also limited to int
(getMaximumMessageCount() returns long however) and the implementations of
the methods in SimpleAMQQueue are inherantly limited to int as well through
use of Lists etc.

Given that it is 2^31 undelivered messages in the queue which can be viewed,
should I still look to add expanding it to Long to the end of the list
following the other UI work or that sufficient and I can just leave it be
since it wont be of any need until such time as the Queue implementation
supports it anyway?

Robbie

Reply via email to