【发布时间】:2019-12-30 10:20:21
【问题描述】:
我正在使用 spring 集成来监听 ibm mq,我想以休眠模式部署我的应用程序并在需要的时间启动它。所以为此我使用了 DefaultMessageListenerContainer 的自动启动错误。但是,只要我启动我的应用程序,它就会开始从队列中读取。 队列已经存在,并且一些其他应用程序已经从该队列中读取。我不希望我的应用程序在部署后立即开始读取。
@Bean()
public DefaultMessageListenerContainer pagn2utcContainer() {
DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
container.setConnectionFactory(mqConnectionFactory);
container.setMessageListener(sita2pagnRcvQueueListener());
container.setDestinationName(jetstarFromArinc);
container.setAutoStartup(false);
return container;
}
@Bean()
public ChannelPublishingJmsMessageListener sita2pagnRcvQueueListener() {
ChannelPublishingJmsMessageListener listener = new ChannelPublishingJmsMessageListener();
listener.setRequestChannelName("arinc2pagnRcvChannel");
return listener;
}
@Bean
public JmsMessageDrivenEndpoint sita2pagnInbound() {
return new JmsMessageDrivenEndpoint(pagn2utcContainer(), sita2pagnRcvQueueListener());
}
@Bean
public MQQueueConnectionFactory wmqQueueConnectionFactory() throws JMSException {
MQQueueConnectionFactory mqQueueConnectionFactory = new MQQueueConnectionFactory();
mqQueueConnectionFactory.setHostName(host);
mqQueueConnectionFactory.setChannel(channel);
mqQueueConnectionFactory.setPort(Integer.parseInt(port));
mqQueueConnectionFactory.setQueueManager(queueManager);
mqQueueConnectionFactory.setTransportType(1);
return mqQueueConnectionFactory;
}
@ServiceActivator(inputChannel = "arinc2pagnRcvChannel", outputChannel = "nullChannel")
public Message<String> arinc2pagnRcv(Message<String> message) {
return message;
}
【问题讨论】:
标签: java jms spring-integration ibm-mq