krishna prasad
krishna prasad

Reputation: 11

Concurrently sending more than two request ActiveMQ queue in apache camel then it fails to respond

client side request:

public Message receive(String message, String queueName) {
    String text = null;
    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
            "tcp://10.0.0.0:61616");
    String userName = "smx";
    String password = "smx";
    Connection connection;
    Message response =null;
    try {
        connection = connectionFactory.createConnection(userName, password);
        connection.start();
        ((ActiveMQConnectionFactory) connectionFactory)
                .setDispatchAsync(false);
        Session session = connection.createSession(false,
                Session.AUTO_ACKNOWLEDGE);
        Queue destination = session.createQueue(queueName);
        MessageProducer producer = session.createProducer(destination);
        producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
        TextMessage textMessage = session.createTextMessage(message);
        Queue tempQueue = session.createQueue(queueName);
        textMessage.setJMSReplyTo(tempQueue);
        producer.send(textMessage);
        MessageConsumer consumer = session.createConsumer(tempQueue);
        response = consumer.receive();
        response.acknowledge();

        session.close();
        connection.close();
    } catch (JMSException e) {
        e.printStackTrace();
    }
    return response;
}

server side:

public void configure() throws Exception {
    from("activemq:queue:GET_QUEUE?disableReplyTo=true")
            .setExchangePattern(ExchangePattern.InOut)
            .to("freemarker:Response.ftl")
            .inOnly("activemq:queue:GET_QUEUE");
}

the following thing i have already tried did not get results 1)activemq:queue:GET_QUEUE?disableReplyTo=true&concurrentConsumers=5

2)activemq:queue:GET_QUEUE?disableReplyTo=true&concurrentConsumers=1&maxConcurrentConsumers=5

3)activemq:queue:GET_QUEUE?disableReplyTo=true&useMessageIDAsCorrelationID=true&concurrentConsumers=5

4)activemq:queue:GET_QUEUE?disableReplyTo=true&useMessageIDAsCorrelationID=true&concurrentConsumers=5&asyncConsumer=true

Upvotes: 0

Views: 181

Answers (1)

Claus Ibsen
Claus Ibsen

Reputation: 55585

You have disabled replyTo in Camel which you should not do, then remove the last inOnly as Camel will automatic send the message back to the reply to queue when the route is done.

Upvotes: 1

Related Questions