Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java “动态更改属性”;DefaultMessageListenerContainer.concurrentConsumers“;在Spring中使用JMX实现JMS_Java_Spring - Fatal编程技术网

Java “动态更改属性”;DefaultMessageListenerContainer.concurrentConsumers“;在Spring中使用JMX实现JMS

Java “动态更改属性”;DefaultMessageListenerContainer.concurrentConsumers“;在Spring中使用JMX实现JMS,java,spring,Java,Spring,我要发疯了!我想不出有什么问题,请帮忙 我想在SpringJMS中动态设置concurrentConsumers。以下是我的代码: <bean id="syncHotProductPool" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> <property name="corePoolSize" value="2" /> <prope

我要发疯了!我想不出有什么问题,请帮忙

我想在SpringJMS中动态设置concurrentConsumers。以下是我的代码:

<bean id="syncHotProductPool" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
        <property name="corePoolSize" value="2" />
        <property name="maxPoolSize" value="2" />
        <property name="queueCapacity" value="2" />
        <property name="threadNamePrefix" value="syncHotProductExecutor-" />
        <property name="daemon" value="true"/>
    </bean>
    <bean id="syncHotProductListener" class="com.ngsp.zrb.messageContainer.DynamicMessageListenerContainer">
        <property name="connectionFactory" ref="jmsSyncProductFactory" />
        <property name="concurrentConsumers" value="2" />
        <property name="maxConcurrentConsumers" value="2" />
        <property name="destination" ref="syncHotProductQueue" />
        <property name="messageListener" ref="syncHotProductReceiver" />
        <property name="receiveTimeout" value="10000" />
        <property name="taskExecutor" ref="syncHotProductPool" />
        <!--0:CACHE_NONE,1:CACHE_CONNECTION,2:CACHE_SESSION,3:CACHE_CONSUMER,4:CACHE_AUTO-->
        <property name="cacheLevel" value="3" />
        <property name="sessionTransacted" value="true" />
    </bean>
}

然后我启动我的tomcat,并将ConcurrentConsumers从1(默认值)设置为8。没关系!但是,当我将ConcurrentConsumers从8设置为1时,队列停止消费消息!为什么

private static final Logger LOGGER = LoggerFactory.getLogger(DynamicMessageListenerContainer.class);

@SuppressWarnings("unused")
@JmxAttribute
private String destinationName;

public String getDestinationName() {
    Destination destination = super.getDestination();
    if (destination instanceof Queue) {
        Queue queue = (Queue) destination;
        try {
            return queue.getQueueName();
        } catch (JMSException e) {
        }
    }
    return null;
}

@JmxOperation
public final void dynamicStop() throws JMSException {
    doStop();
}

@JmxOperation
public final void dynamicStart() throws JMSException {
    doStart();
}

@JmxOperation
public final void setConcurrentConsumersNum(int i) throws JMSException {

    setIdleConsumerLimit(i);

    setConcurrentConsumers(i);


}

@JmxOperation
public final int getConcurrentConsumersNum() throws JMSException {
    return getConcurrentConsumers();

}