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