qpid amqp-1-0-clientとそれに関連するjarを使用してAzureサービスバスに接続するコンシューマを作成しています。私はAzureキューに接続してメッセージを受信することができますが、問題は、メッセージを処理する前にそれを確認したにもかかわらず、同じメッセージを複数のキューから受信しています。また、私のメッセージはDLQに移行されます。Spring JMSのAzureは同じメッセージを複数受信し、メッセージはDLQに移動します
例として、500個のメッセージがキューにある場合、MessageListener.onMessage()をオーバーライドするonMessage()メソッドが500回以上実行されています。およそ200のメッセージがDLQにプッシュされます。キューからメッセージを読んでデータベースに格納しています。これらの数字は常に同じではありません。 DBにメッセージを読み込んで保存するために、私のアプリケーションは600msかかる。 Azureの
@Configuration
public class AzureConfiguration {
@Bean
public ConnectionFactory jmsConnectionFactory() {
CachingConnectionFactory cachingConnectionFactory = null;
try {
ConnectionFactoryImpl a = ConnectionFactoryImpl.createFromURL(url);
a.setMaxPrefetch(0);
a.setSyncPublish(true);
cachingConnectionFactory = new CachingConnectionFactory(a);
cachingConnectionFactory.setReconnectOnException(true);
cachingConnectionFactory.setClientId(applicationName);
exceptionListener.setCachedConnFactory(cachingConnectionFactory);
} catch (MalformedURLException e) {
}
return cachingConnectionFactory;
}
@Bean
public MessageListenerContainer getContainer() {
DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
container.setConnectionFactory(jmsConnectionFactory());
container.setDestinationName(queueName);
container.setMessageListener(messageConsumer);
container.setConcurrency(concurrency);
exceptionListener.setContainer(container);
container.setExceptionListener(exceptionListener);
container.setAutoStartup(true);
container.setSessionAcknowledgeMode(2);
return container;
}
}
、私の依存関係に接続するための設定を持っている PFBマイコード: <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jms</artifactId> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.5</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.apache.geronimo.specs</groupId> <artifactId>geronimo-jms_1.1_spec</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>org.apache.qpid</groupId> <artifactId>qpid-amqp-1-0-client</artifactId> <version>0.30</version> </dependency> <dependency> <groupId>org.apache.qpid</groupId> <artifactId>qpid-amqp-1-0-client-jms</artifactId> <version>0.30</version> </dependency> <dependency> <groupId>org.apache.qpid</groupId> <artifactId>qpid-amqp-1-0-common</artifactId> <version>0.30</version> </dependency>
助けてください。