我将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;
}发布于 2017-02-08 03:56:17
通过取消选中负载平衡“服务器亲和性已启用”属性可解决此问题
https://stackoverflow.com/questions/42093899
复制相似问题