Утечка памяти Apache Camel JMS?

Я новичок в использовании 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 для таких решений?

Ваше здоровье!

0
задан Christian Schneider 20 July 2012 в 07:10
поделиться