helidon-io / helidon

Java libraries for writing microservices
https://helidon.io
Apache License 2.0
3.44k stars 562 forks source link

Enhancement Request: support multiple JMS messages read in Reactive Messaging #5895

Open satyanarayana-penugonda-eng opened 1 year ago

satyanarayana-penugonda-eng commented 1 year ago

Environment Details


Problem Description

I am working on an application (micro service) which uses Helidon MP 2.5.0 and Helidon JMS connector to consume the JMS messages produced by a weblogic server. the weblogic server produces 1000 JMS messages per second . The Helidon micro service application uses 14 JMS consumer channels (for the same destination) and acknowledges the JMS message immediately upon receiving the JMS message. The Hellidon micro service app able to consume max 100 JMS Message per second . Increasing the number of the JMS consumer channels further (> 14 ) is decreasing the performance.

Expected Behavior: Request or receive more than one JMS message at a time using the Helidon JMS connector Consumer channel to increase the throughput.

Steps to reproduce

Consumer channel configuration

  IncomingOutboundQueue14:
        connector: helidon-jms
        session-mode: CLIENT_ACKNOWLEDGE
        destination: jms_module!event_outbound

Java code

  @Incoming("IncomingOutboundQueue14")
    @Acknowledgment(Acknowledgment.Strategy.MANUAL)
    public CompletionStage<Void> onMessage(final JmsMessage<String> message) throws IOException {
        if (log.atInfo().isEnabled()) {
            log.atInfo().log("The IncomingOutboundQueue14 message is started.");
        }
        return message.ack();

    }

Porting issues:

PRs:

arjav-desai commented 1 year ago

Possible duplicate of https://github.com/helidon-io/helidon/issues/4380