Hi Justin I want to write my own api to get All queue All topic name Memory use by queue and topic No of messages queue and topic Buffer memory
I am using embbed artemis in our application. So could u please guide me which api in artemis can I use to get all imformation . Thank you Niraj On Tue, 15 Apr, 2025, 6:32 am Niraj Kumar Rohit, <nirajkumarro...@gmail.com> wrote: > Before we hav hornetq ,now we have to replace hornetq with artemis 2.19.1 > > On Tue, 15 Apr, 2025, 12:22 am Justin Bertram, <jbert...@apache.org> > wrote: > >> To clarify, you have a legacy product using Java 8, and you're embedding >> ActiveMQ Artemis in it for the first time? >> >> >> Justin >> >> On Mon, Apr 14, 2025 at 11:42 AM Niraj Kumar Rohit < >> nirajkumarro...@gmail.com> wrote: >> >> > Hi Justin >> > >> > Using 2.19.1 because product is legacy and it is on java 8. >> > >> > On Mon, 14 Apr, 2025, 6:42 pm Justin Bertram, <jbert...@apache.org> >> wrote: >> > >> > > > i want to enable the web console in artemis 2.19.1. >> > > >> > > I answered a question similar to this on Stack Overflow [1] awhile >> back >> > > that should give you a good idea of what's needed. >> > > >> > > Aside from that, is there a specific reason you're using 2.19.1? That >> > > version was released in June of 2022 almost 3 years ago now. There >> have >> > > been 25 releases, over 2,300 commits, and hundreds of Jiras resolved >> > since >> > > then. >> > > >> > > >> > > Justin >> > > >> > > [1] >> > > >> > > >> > >> https://stackoverflow.com/questions/76670206/embedded-activemq-artemis-doesnt-show-web-console >> > > >> > > On Mon, Apr 14, 2025 at 2:25 AM Niraj Kumar Rohit < >> > > nirajkumarro...@gmail.com> >> > > wrote: >> > > >> > > > Hi justin >> > > > >> > > > Thanks , I am able to achieve HA by xml as well as API also. I >> was >> > > > missing the connector configuration. >> > > > >> > > > New Requirement:- >> > > > i want to enable the web console in artemis 2.19.1. What are the >> > steps >> > > I >> > > > need to do. >> > > > I am using embbededActivemq.java to start the artemis. >> > > > >> > > > Thanks >> > > > Niraj >> > > > >> > > > >> > > > >> > > > On Wed, Apr 9, 2025 at 8:40 AM Justin Bertram <jbert...@apache.org> >> > > wrote: >> > > > >> > > > > In the code you shared I don't see any evidence that you're >> properly >> > > > > configuring your brokers to cluster. A pair of brokers using >> > > replication >> > > > > need a valid cluster to discover each other. This is noted in the >> > > > > documentation [1] which states, "A proper cluster configuration is >> > > > required >> > > > > as a pre-requisite for an HA configuration." >> > > > > >> > > > > Instead of attempting to configure the broker via the >> configuration >> > API >> > > > > would it be possible for you to put a broker.xml file on your >> > > classpath? >> > > > > That would save you a lot of time and effort, and it would be much >> > more >> > > > > flexible if you ever needed to change the configuration. >> > > > > >> > > > > In any case, take a look at one of the replicated examples [2] as >> a >> > > > > template for what you need to configure. >> > > > > >> > > > > >> > > > > Justin >> > > > > >> > > > > [1] >> > > > > >> > > > > >> > > > >> > > >> > >> https://activemq.apache.org/components/artemis/documentation/latest/ha.html#ha-policies >> > > > > [2] >> > > > > >> > > > > >> > > > >> > > >> > >> https://github.com/apache/activemq-artemis-examples/tree/main/examples/features/ha >> > > > > >> > > > > On Tue, Apr 8, 2025 at 9:07 PM Niraj Kumar Rohit < >> > > > > nirajkumarro...@gmail.com> >> > > > > wrote: >> > > > > >> > > > > > Hi >> > > > > > >> > > > > > >> > > > > > USE CASE:-- >> > > > > > 1.We have one app which run in two server DP1 AND DP2 >> > > > > > 2.Both DP1 and DP2 using embedded EmbeddedActiveMQ.java API to >> run >> > > > apache >> > > > > > activemq artemis. >> > > > > > 3.if i start DP1 1st then it is become live server and DP2 >> > become >> > > > > > backup and vice versa >> > > > > > 4.Now i shutdown DP1 then DP2 should live and as i start DP1 >> it >> > > > beahve >> > > > > > as backup till DP2 not fail. >> > > > > > 5.in this case of artemis after fail of DP1, DP2 is not >> behaving >> > > as >> > > > > live >> > > > > > server. because after failover of DP1 , DP2 is not get >> activate .i >> > > am >> > > > > > checking like this and always traped into loop nver come out >> from >> > > the >> > > > > > loop. >> > > > > > >> > > > > > while >> > > > > > >> > > > >> > (!jmsServer.getActiveMQServer().waitForActivation(30L,TimeUnit.SECONDS)) >> > > > > { >> > > > > > Thread.sleep(100); >> > > > > > >> > > > > > } >> > > > > > 6.API using for live and backup server >> > > > > > >> > > > > > if (isCurrentServerLive){ >> > > > > > ReplicatedPolicyConfiguration haPolicy = new >> > > > > > ReplicatedPolicyConfiguration(); >> > > > > > haPolicy.setGroupName("bsm-back-up-group"); >> > > > > > haPolicy.setInitialReplicationSyncTimeout(120000); >> > > > > > haPolicy.setCheckForLiveServer(true); // Critical >> for >> > > > > failover >> > > > > > detection >> > > > > > haPolicy.setQuorumSize(1); // Minimum nodes >> required >> > > > > > configuration.setHAPolicyConfiguration(haPolicy); >> > > > > > }else{ >> > > > > > ReplicaPolicyConfiguration haPolicy = new >> > > > > > ReplicaPolicyConfiguration(); >> > > > > > haPolicy.setGroupName("bsm-back-up-group"); >> > > > > > haPolicy.setInitialReplicationSyncTimeout(120000); >> > > > > > haPolicy.setRestartBackup(false); // Don't restart >> > when >> > > > live >> > > > > > exists >> > > > > > haPolicy.setAllowFailBack(true); // Allow primary >> to >> > > > resume >> > > > > > configuration.setHAPolicyConfiguration(haPolicy);; >> > > > > > >> > > > > > } >> > > > > > >> > > > > > >> > > > > > 7.even listern is also not getting call , listner implemation >> in >> > > > backup >> > > > > > side >> > > > > > public void registerListener(boolean isCurrentServerLive) { >> > > > > > LOG.info("kutt registerListener >> > "+(!isCurrentServerLive?"back >> > > > > going >> > > > > > to register Listner":"live server not going to register")); >> > > > > > if (!isCurrentServerLive) { >> > > > > > final ActiveMQServer artemisServer = >> > > > > > jmsServer.getActiveMQServer(); >> > > > > > LOG.info(" registerListener done"); >> > > > > > artemisServer.registerActivateCallback(new >> > > > ActivateCallback() >> > > > > > >> > > > > > { >> > > > > > @Override >> > > > > > public void preActivate() { >> > > > > > >> > > > > > LOG.info(" registerListener preActivate() >> > > called"); >> > > > > > } >> > > > > > >> > > > > > @Override >> > > > > > public void deActivate() { >> > > > > > LOG.info(" registerListener deActivate() >> > > called"); >> > > > > > } >> > > > > > >> > > > > > @Override >> > > > > > public void activationComplete() { >> > > > > > LOG.info(" registerListener >> > activationComplete() >> > > > > > called"); >> > > > > > } >> > > > > > >> > > > > > >> > > > > > @Override >> > > > > > public void activated() { >> > > > > > LOG.info(" registerListener activated() >> > called"); >> > > > > > >> > > > > > >> > > > > > // Below changes to check if the live bus is >> > > really >> > > > > > active. >> > > > > > // read the server state initially see the >> last >> > > > > > interval >> > > > > > // loop of 2 times of interval >> > > > > > // wait of interval for 1 second >> > > > > > // read the state and see if the state >> changes >> > > > > > // if there is change then without changing >> the >> > > > live >> > > > > > bus then restart >> > > > > > // if there is no change then update the >> live >> > > > server >> > > > > > and then restart >> > > > > > try { >> > > > > > long busState = >> busData.getServerState(); >> > > > > > int maxChecks = 10; >> > > > > > boolean isLiveBusActive = false; >> > > > > > >> > > > > > synchronized (this) { >> > > > > > while (!isLiveBusActive && >> (maxChecks > >> > > > 0)) { >> > > > > > wait(1000L); >> > > > > > >> > > > > > isLiveBusActive = (busState != >> > > > > > busData.getServerState()); >> > > > > > LOG.info(" listerner called now >> on >> > > > > failover >> > > > > > with state of backup"+isLiveBusActive); >> > > > > > maxChecks--; >> > > > > > } >> > > > > > } >> > > > > > >> > > > > > if (!isLiveBusActive) >> > > > > > busData.setLiveServer(socket); >> > > > > > } catch (Exception e) { >> > > > > > LOG.info("Failed to update live server >> > after >> > > > > backup >> > > > > > server got activated", e); >> > > > > > } >> > > > > > >> > > > > > LOG.info("restarting backup server before >> > clients >> > > > > fail >> > > > > > over"); >> > > > > > try{ >> > > > > > HornetQRunner.main(new String[]{"strat"}); >> > > > > > }catch(Exception e){ >> > > > > > LOG.info("faled to satrt"); >> > > > > > } >> > > > > > >> > > > > > // Throwing IllegalStateException to make >> sure >> > > the >> > > > > > calling old jmsserver doesn't finish it's failover >> > > > > > // since it had been stopped and a new one >> has >> > > been >> > > > > > started, >> > > > > > throw new IllegalStateException("Need to >> > restart >> > > > > > instead of activation"); >> > > > > > } >> > > > > > }); >> > > > > > } >> > > > > > >> > > > > > } >> > > > > > >> > > > > > >> > > > > > >> > > > > > >> > > > > > i need your suggestion to make it work . and thanks in advance >> for >> > > your >> > > > > > help. >> > > > > > >> > > > > > its very urgent our dead line is very near >> > > > > > >> > > > > > Thanks >> > > > > > Niraj >> > > > > > >> > > > > >> > > > >> > > >> > >> >