Spring引导SimpleJMListenerEndpoint并发设置不工作

Spring引导SimpleJMListenerEndpoint并发设置不工作,spring,concurrency,spring-jms,Spring,Concurrency,Spring Jms,我的项目中的代码片段如下所示。我正在尝试连接到IBM MQ QM并接收消息。在将concurreny设置为5-10的情况下,我以编程方式配置侦听器。连接到队列时没有问题,但侦听器会话始终处于队列的上限(此处为10)。我假设它应该总是从5开始,然后在音量增加时放大到10。我在Tibco EMS队列中也尝试了同样的方法,同样的。不确定我在这里做错了什么,也找不到任何有帮助的讨论。非常感谢任何有用的指点 @Slf4j @Component public class ConsumerConfig {

我的项目中的代码片段如下所示。我正在尝试连接到IBM MQ QM并接收消息。在将concurreny设置为5-10的情况下,我以编程方式配置侦听器。连接到队列时没有问题,但侦听器会话始终处于队列的上限(此处为10)。我假设它应该总是从5开始,然后在音量增加时放大到10。我在Tibco EMS队列中也尝试了同样的方法,同样的。不确定我在这里做错了什么,也找不到任何有帮助的讨论。非常感谢任何有用的指点

@Slf4j
@Component
public class ConsumerConfig 
{   
    @Value("${wmq.reqQueue}")
    String partnerReqReceiverDestination;

    @Value("${wmq.requestConcurrency}")
    String partnerReqReceiverConcurrency;

    private final JmsListenerEndpointRegistry wmqListenerEndpointRegistry = new JmsListenerEndpointRegistry();  

    public MQQueueConnectionFactory mqQueueConnectionFactory() throws Exception 
    {
       System.setProperty("com.ibm.mq.cfg.useIBMCipherMappings",ibmMqConfig.getUseIBMCipherMappings());   
       System.setProperty("javax.net.ssl.trustStore",ibmMqConfig.getTrustStore());  
       System.setProperty("javax.net.ssl.trustStorePassword",ibmMqConfig.getTrustStorePassword());
       System.setProperty("javax.net.ssl.keyStore",ibmMqConfig.getKeyStore());   
       System.setProperty("javax.net.ssl.keyStorePassword",ibmMqConfig.getKeyStorePassword());

       MQQueueConnectionFactory mqQueueConnectionFactory = new MQQueueConnectionFactory();      
       try 
        {   
            mqQueueConnectionFactory.setHostName(ibmMqConfig.getHostname());
            mqQueueConnectionFactory.setQueueManager(ibmMqConfig.getQueueManager());
            mqQueueConnectionFactory.setPort(ibmMqConfig.getPort());
            mqQueueConnectionFactory.setChannel(ibmMqConfig.getChannel());
            mqQueueConnectionFactory.setSSLCipherSuite(ibmMqConfig.getSslCipherSuites());
            mqQueueConnectionFactory.setCCSID(ibmMqConfig.getCcsid());
            mqQueueConnectionFactory.setClientReconnectOptions(WMQConstants.WMQ_CLIENT_RECONNECT);
            mqQueueConnectionFactory.setClientReconnectTimeout(ibmMqConfig.getClientReconnectTimeout());
            mqQueueConnectionFactory.setTransportType(WMQConstants.WMQ_CM_CLIENT);

        catch (Exception ex) 
        {
            throw new Exception(ExceptionUtils.getStackTrace(ex)); 
        }
        return mqQueueConnectionFactory;
    }

     public SimpleJmsListenerContainerFactory wmqListenerContainerFactory() throws Exception
     {      
        SimpleJmsListenerContainerFactory wmqContainerFactory = new SimpleJmsListenerContainerFactory();        
        wmqContainerFactory.setConnectionFactory(mqQueueConnectionFactory());
        wmqContainerFactory.setDestinationResolver(new DynamicDestinationResolver());
        wmqContainerFactory.setPubSubDomain(Boolean.FALSE);
        wmqContainerFactory.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
        return wmqContainerFactory;
     }

     public void configureWmqListeners()
        {   
          SimpleJmsListenerEndpoint endpoint = new SimpleJmsListenerEndpoint();   
             endpoint.setId(sourceRegion + "-" + String.valueOf(Thread.currentThread().getId()));
             endpoint.setDestination(this.partnerReqReceiverDestination);   
             endpoint.setConcurrency(this.partnerReqReceiverConcurrency);   
             endpoint.setMessageListener(testRequestHandler);
             try 
             {  
                this.wmqListenerEndpointRegistry.registerListenerContainer(endpoint,wmqListenerContainerFactory());     
             }
             catch (Exception ex)
             {              
                throw(ex);
             }      
          this.wmqListenerEndpointRegistry.start();
        }