Thank you Justin
On Wed, 26 Oct 2022 at 01:37, Justin Bertram <[email protected]> wrote:
> Use the "getQueueNames" method on the address control [1], e.g.:
>
> try (ServerLocator locator =
> ActiveMQClient.createServerLocator("vm://0");
> ClientSessionFactory factory = locator.createSessionFactory();
> ClientSession session = factory.createSession(false, true,
> true)) {
>
> ClientRequestor requestor = new ClientRequestor(session,
> "activemq.management");
> ClientMessage message = session.createMessage(true);
> ManagementHelper.putOperationInvocation(message,
> String.format("%s%s", ResourceNames.ADDRESS, "myAddress"),
> "getQueueNames");
> session.start();
> ClientMessage reply = requestor.request(message);
> requestor.close();
> for (Object results : ManagementHelper.getResults(reply)) {
> for (Object result : ((Object[])results))
> System.out.println(result);
> }
> }
>
>
> Justin
>
> [1]
>
> https://activemq.apache.org/components/artemis/documentation/javadocs/javadoc-latest/org/apache/activemq/artemis/api/core/management/AddressControl.html#getQueueNames()
>
> On Tue, Oct 25, 2022 at 3:26 PM Thai Le <[email protected]> wrote:
>
> > Hello,
> > I am using ActiveMQClient to talk to the artemis broker. I am trying to
> > move all the messages in a topic to another topic programmatically. The
> > only pieces of info I have is the broker URL, username, password and the
> > topic name (the address). However, since there are quite a number of
> > subscribers to this topic, I want to get the list of queues associated
> with
> > the address and run the move operation on each of them. Unfortunately, i
> do
> > not see any operation that return the list of queues associated with the
> > address (topic). Here is my current code:
> >
> > > try (ServerLocator locator =
> > ActiveMQClient.createServerLocator(broker.getUrl());
> > ClientSessionFactory factory = locator.createSessionFactory();
> > ClientSession session = factory.createSession(broker.getAdmin(),
> > broker.getAdminPassword(), false, true, true, true, 10);) {
> > >
> > > ClientRequestor requestor = new ClientRequestor(session,
> > "activemq.management"); ClientMessage message =
> > session.createMessage(true); ManagementHelper.putOperationInvocation(
> > > message
> > > , String.format("%s%s", ResourceNames.ADDRESS,
> oldTopicAddress)
> > > , "?????"); session.start(); ClientMessage reply =
> > requestor.request(message); requestor.close(); return
> > extractQueueNames(reply);
> > >
> > > Hope to get some hint
> >
> > Thai Le
> >
>
--
Where there is will, there is a way