You may be suffering from ARTEMIS-3587 [1]. I recommend you move to 2.20.0.


Justin

[1] https://issues.apache.org/jira/browse/ARTEMIS-3587

On Wed, Jan 26, 2022 at 10:48 PM Greg Kopff <g...@q10stats.com> wrote:

> Hi Community.
>
> I have an application that uses HornetQ (2.4.1.Final).  It's a pretty
> simple setup (no HA) - it uses the HornetQ protocol (rather than JMS) and
> an embedded server.  There are about a dozen clients, each in their own
> JVM, that talk to the server.  It all works really well, and has done for
> over 5 years.
>
> In order to move with the times, I decided to update the version of
> HornetQ we use, and that means migrating to Apache ActiveMQ (2.19.0).  The
> process was very straightforward, and required very little code changes.
> It literally was a case of changing things like HornetQServer to
> ActiveMQServer.
>
> To give a rough idea of the configuration:
>
>
> final Configuration configuration = new ConfigurationImpl();
> configuration.setPersistenceEnabled(false);
> configuration.setJournalDirectory(System.getProperty("java.io.tmpdir"));
> configuration.setCreateJournalDir(false);
> configuration.setSecurityEnabled(false);
> configuration.getAcceptorConfigurations().add(new
> TransportConfiguration(this.acceptor.getName()));
> configuration.setClusterUser("unused");
> configuration.setClusterPassword("disabled");
>
> // final HornetQServer server =
> HornetQServers.newHornetQServer(configuration);
> final ActiveMQServer server =
> ActiveMQServers.newActiveMQServer(configuration);
> server.start();
>
> ...
>
> this.locator = ActiveMQClient.createServerLocatorWithoutHA(
>     new TransportConfiguration("(a name)");
> this.locator.setAckBatchSize(1);
> this.locator.setPreAcknowledge(true);
> this.locator.setReconnectAttempts(RETRY_FOREVER);
> this.locator.setCallTimeout(120_000);
> this.locator.setConnectionTTL(300_000);
>
> ...
>
> final QueueConfiguration qc = new QueueConfiguration(queueName);
> qc.setAddress("(a queue name)");
> qc.setTemporary(true);
> qc.setDurable(false);
> this.session.createQueue(qc);
>
>
> None of this changed between using HornetQ and using ActiveMQ.
>
> Now, to the problem ...
>
> On the face of it, everything works perfectly.  However, after a variable
> amount of time, I get the following:
>
> WARN : o.a.a.a.u.critical.CriticalMeasure: Component
> org.apache.activemq.artemis.core.server.impl.QueueImpl is expired on path 0
> WARN : o.a.activemq.artemis.core.server: AMQ224081: The component
> QueueImpl[name=faff23f5-fdec-48d3-aad2-591c553b2bdf,
> postOffice=PostOfficeImpl [server=ActiveMQServerImpl::name=localhost],
> temp=true]@3b4d33ea is not responsive
>
>
> Even when this occurs, the application continues to behave correctly -- in
> other words, messages do appear to keep flowing on that queue.  Also note
> that it's not the same queue that fails each time - and it's never more
> than one queue.
>
> As I understand it, the default timeout period is quite large (120
> seconds, as per
> https://activemq.apache.org/components/artemis/documentation/latest/critical-analysis.html)
> -- and I can say that the application remains responsive during these times
> ... so my question to the list is then: why am I getting this expiry
> notification.
>
> If I can provide any further context to help further this discussion,
> please let me know.
>
> Thanks for your help.
>
> Kindest regards,
>
> --
> Greg
>
>

Reply via email to