Just leaving this for others. My theory is confirmed, if you have upgraded OpenJDK under running live Artemis broker and didn't restart it afterwards your restartEmbeddedWebServer() command will fail. Hawtio console will be stopped but won't automatically re-start.
Reproducible steps under Rocky Linux 9: 1. Login into running Hawtio console, click on Operations tab and Exexute restartEmbeddedWebServer(). The user gets logged out but after few seconds console is available again, which is correct behaviour. 2. Now login into SSH on the server running Artemis broker and run "dnf update java-17-openjdk-headless" or "dnf downgrade java-17-openjdk-headless". 3. Login back into running Hawtio console, click on Operations tab and Exexute restartEmbeddedWebServer() again. The console is now down and never comes up. The moral of the story - never upgrade JDK if you are unable to restart Artemis broker at the same time. Else you will have problems later, for example when reloading Hawtio console for TLS certificate change. Thank you for your help Justin! -- Best Regards, Vilius -----Original Message----- From: Vilius Šumskas <vilius.sums...@rivile.lt> Sent: Thursday, January 12, 2023 12:48 PM To: users@activemq.apache.org Subject: RE: reloading TLS certificate for Jolokia Yes, the upgrade is removing older Java version, however this is only for minor versions. In theory internets say that it should depend on software if that's safe or not https://community.oracle.com/tech/developers/discussion/4084875/upgrading-jvm-while-application-server-running For example in Jenkins case it's not safe https://stackoverflow.com/questions/35758284/does-tomcat-need-to-be-restarted-after-a-jdk-is-updated For Artemis I did this multiple time and it always seemed fine. I see that now it's more complicated to bring everything up, so I guess I will make a maintenance window on production and restart the broker completely. I will test my theory regarding JDK upgrade and console restart a little bit later and report the findings. -- Vilius -----Original Message----- From: Justin Bertram <jbert...@apache.org> Sent: Wednesday, January 11, 2023 11:20 PM To: users@activemq.apache.org Subject: Re: reloading TLS certificate for Jolokia > Could it be that our Artemis instance is still using older JDK which exist only in memory, and console "inherits" that by trying to start itself, and then fails? I don't have any experience with such a use-case so it's hard to say. The "console" isn't fundamentally different from any other part of the broker. It's all just Java classes. Therefore, I wouldn't expect such a failure to be isolated there. If the rest of the broker is working fine I would expect the embedded web server to work fine as well. Are you _removing_ the version of Java that the broker is using during the upgrade or are you just installing a new version alongside the existing version? If the former, that seems dangerous in my opinion. > Is Artemis supposed to reload management.xml automatically... No. The contents of management.xml are not reloaded automatically. > ...do we have a chicken-egg problem now; cannot enable JMX because JMX > is down? You do have a chicken-egg problem with using JMX remotely. However, you could still theoretically use it locally through a direct JVM connection. You also still have the option of using management messages [1]. You can find an example of their use in the examples/features/standard/management directory shipped with the broker. Justin [1] https://activemq.apache.org/components/artemis/documentation/latest/management.html#using-management-message-api On Wed, Jan 11, 2023 at 2:49 PM Vilius Šumskas <vilius.sums...@rivile.lt> wrote: > No, I don't see any of these messages in the log. I have posted full > log what I see. > > This is production system so getting threadump is not so easy, but I > have decided to test this on our testing environment which runs newest 2.27.1. > Running restartEmbeddedWebServer() via Hawtio console on that > environment worked just fine. > > I have remembered one thing though. We have upgraded OpenJDK on our > production environment some time ago, but never restarted Artemis. > Usually this doesn't produce any issues, but if we decide to restart > Artemis after JDK upgrade it usually produces some errors about java > binaries cannot be found. As if Artemis was still loaded on older JDK > version and stopping it unloads these non-existing older JDK binaries from > memory. > Could it be that our Artemis instance is still using older JDK which > exist only in memory, and console "inherits" that by trying to start > itself, and then fails? > > Anyway, I see that JMX Remote is disabled by default. I have enabled > JMX connector in management.xml, but I don't see port 1099 coming up. > Is Artemis supposed to reload management.xml automatically, or do we > have a chicken-egg problem now; cannot enable JMX because JMX is down? > > -- > Vilius > > -----Original Message----- > From: Justin Bertram <jbert...@apache.org> > Sent: Wednesday, January 11, 2023 6:46 PM > To: users@activemq.apache.org > Subject: Re: reloading TLS certificate for Jolokia > > Those exceptions look internal to Jetty. I wouldn't expect them to > necessarily be a problem for the restart process. Perhaps it was > handling a request at the moment you tried to restart it. > > Do you ever see any of these messages in the log: > > Stopped embedded web server > > or > > Embedded web server not restarted in x milliseconds > > or > > Embedded web server restart failed > > If not, could you perhaps get a thread dump? > > In any event, if you want to start the embedded web server you can do > so using JMX directly (e.g. via JConsole). Just invoke the > startEmbeddedWebServer operation on the ActiveMQServerControl MBean. > > > Justin > > On Wed, Jan 11, 2023 at 6:41 AM Vilius Šumskas > <vilius.sums...@rivile.lt> > wrote: > > > Well, I have found " restartEmbeddedWebServer()" and tried to use > > that from the console, however now the console went down and doesn't come > > up. > > The logs say: https://p.defau.lt/?C6ssFYW0JSJiZX1yszP0yQ > > > > Jolokia API is also down now. Is there a way to start embedded web > > server without restarting the broker? > > > > -- > > Vilius > > > > -----Original Message----- > > From: Vilius Šumskas <vilius.sums...@rivile.lt> > > Sent: Wednesday, January 11, 2023 1:55 PM > > To: users@activemq.apache.org > > Subject: reloading TLS certificate for Jolokia > > > > Hi, > > > > since because of https://issues.apache.org/jira/browse/ARTEMIS-3117 > > ActiveMQ Artemis doesn‘t reload TLS certificates automatically > > anymore I‘m wondering, what is the correct way to reload > > certificates for embedded Jolokia Console? > > > > I have reloaded keystore for acceptors via console using reload() on > > „artemis-ssl“ acceptor, but I just cannot figure out a way to reload > > it for console itself. > > > > -- > > Best Regards, > > > > Vilius Šumskas > > Rivile > > IT manager > > > > >