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