【发布时间】:2017-02-07 15:38:53
【问题描述】:
我将 DefaultMessageListenerContainer 配置为侦听来自 WebLogic JMS 的消息。 WebLogic 实例有两个实例。我注意到消费者总是只去一个实例,它不会在实例之间共享。
有人可以建议这是由于 DefaultMessageListenerContainer 配置问题还是 JMS 实例问题?
@Bean
public DefaultMessageListenerContainer defaultMessageListenerContainer(MessageListenerAdapter eventListenerAdapter,
ConnectionFactory connectionFactory,
Destination destination) {
DefaultMessageListenerContainer messageListenerContainer = new DefaultMessageListenerContainer();
messageListenerContainer.setSessionTransacted(true);
messageListenerContainer.setMessageListener(eventListenerAdapter);
messageListenerContainer.setMessageSelector("id='1' and name='department'");
messageListenerContainer.setDestination(destination);
messageListenerContainer.setConcurrency("3-6");
messageListenerContainer.setConnectionFactory(connectionFactory);
return messageListenerContainer;
}
@Bean(name = "destination")
public JndiObjectFactoryBean destination(JndiTemplate jndiTemplate) {
JndiObjectFactoryBean queueJndi = new JndiObjectFactoryBean();
queueJndi.setJndiTemplate(jndiTemplate);
queueJndi.setJndiName("DEPT_QUEUE");
return queueJndi;
}
@Bean(name = "connectionFactory")
public ConnectionFactory connectionFactory() {
return (ConnectionFactory) jmsConnectionFactory().getObject();
}
@Bean(name = "eventListenerAdapter")
public MessageListenerAdapter eventListenerAdapter() {
MessageListenerAdapter messageListenerAdapter = new MessageListenerAdapter(processEventsListener);
messageListenerAdapter.setDefaultListenerMethod("processEvents");
messageListenerAdapter.setMessageConverter(null);
return messageListenerAdapter;
}
【问题讨论】:
标签: weblogic message-queue spring-jms