2017-02-07 1 views
0

WebLogic JMS에서 메시지를 청취하기 위해 DefaultMessageListenerContainer를 구성했습니다. WebLogic 인스턴스에는 두 가지 인스턴스가 있습니다. 나는 소비자가 항상 단 하나의 인스턴스로 가고 그것이 인스턴스간에 공유되지 않는다는 것을 알아 차렸다.Spring DefaultMessageListenerContainer Consumer

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

문제는 "서버 선호도가 활성화"로드 밸런싱을 취소하여 해결 재산

관련 문제