Я новичок в использовании Apache Camel, но из различных моих тестов я понял, что использование JMS в качестве канала очереди создает утечку памяти, поскольку используемая память не уменьшается после потребления каждого сообщения.
простой пример описал бы это лучше:
public static void main(String args[]) throws Exception {
CamelContext context = new DefaultCamelContext();
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost?broker.persistent=false");
context.addComponent("experimental", JmsComponent.jmsComponentAutoAcknowledge(connectionFactory));
context.addRoutes(new RouteBuilder() {
public void configure() {
from("file://test").to("experimental:queue:test");
}
});
context.addRoutes(new RouteBuilder() {
public void configure() {
from("experimental:queue:test").to("stream:out");
}
});
Main main = new Main();
main.getCamelContexts().add(context);
main.run();
}
Есть ли способ заставить GC очищать очередь или очищать ее содержимое по требованию? Есть ли лучший способ использовать Camel для таких решений?
Ваше здоровье!