2017-02-07 9 views
0

WebLogic JMSからのメッセージを待機するようにDefaultMessageListenerContainerをコンフィグレーションしました。 WebLogicインスタンスには2つのインスタンスがあります。私は、消費者が常に1つのインスタンスだけに行き、インスタンス間で共有していないことに気付きました。Spring DefaultMessageListenerContainerコンシューマ

JMSインスタンスでDefaultMessageListenerContainer設定の問題が原因であるかどうかは誰か助言できますか?

@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; 
} 

答えて

1

問題は、「サーバアフィニティが有効」ロードバランスをオフにすることによって解決されるプロパティ

関連する問題