Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

acknowledgment relater error #438

Open
cristibozga opened this issue Dec 30, 2024 · 1 comment
Open

acknowledgment relater error #438

cristibozga opened this issue Dec 30, 2024 · 1 comment

Comments

@cristibozga
Copy link

We are migration from the old servicebus sdk to the new one and after the first deployment we had several errors.
One of problems is:

com.azure.messaging.servicebus.ServiceBusException: The RequestResponseChannel didn't receive the acknowledgment for the send due receive link termination.
at com.azure.messaging.servicebus.MessagePumpTerminatedException.getErrorContext(MessagePumpTerminatedException.java:81)
at com.azure.messaging.servicebus.ServiceBusProcessor$RollingMessagePump.notifyError(ServiceBusProcessor.java:272)
at com.azure.messaging.servicebus.ServiceBusProcessor$RollingMessagePump.lambda$beginIntern$6(ServiceBusProcessor.java:249)
at reactor.core.publisher.Mono.lambda$onErrorResume$32(Mono.java:3887)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:94
tat io.opentelemetry.javaagent.shaded.instrumentation.reactor.v3_1.TracingSubscriber.onError(TracingSubscriber.java:85)
at reactor.core.publisher.MonoUsing$MonoUsingSubscriber.onError(MonoUsing.java:260)
at io.opentelemetry.javaagent.shaded.instrumentation.reactor.v3_1.TracingSubscriber.onError(TracingSubscriber.java:85)
at reactor.core.publisher.MonoIgnoreThen$ThenIgnoreMain.onError(MonoIgnoreThen.java:278)
at io.opentelemetry.javaagent.shaded.instrumentation.reactor.v3_1.TracingSubscriber.onError(TracingSubscriber.java:85)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:106)
at reactor.core.publisher.Operators.error(Operators.java:198)
at reactor.core.publisher.MonoError.subscribe(MonoError.java:53)
at reactor.core.publisher.Mono.subscribe(Mono.java:4490)
at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onError(FluxOnErrorResume.java:103)
at io.opentelemetry.javaagent.shaded.instrumentation.reactor.v3_1.TracingSubscriber.onError(TracingSubscriber.java:85)
at reactor.core.publisher.MonoUsingWhen$MonoUsingWhenSubscriber.deferredError(MonoUsingWhen.java:277)
at reactor.core.publisher.FluxUsingWhen$RollbackInner.onComplete(FluxUsingWhen.java:475)
at reactor.core.publisher.Operators.complete(Operators.java:137)\n\tat 

Our code is:

private ServiceBusProcessorClient createSessionQueueConsumer(String queuePath, SessionQueueListenerProperties queueListenerProperties) {

        ServiceBusClientBuilder.ServiceBusSessionProcessorClientBuilder builder = new ServiceBusClientBuilder().
                connectionString(serviceBusProperties.getConnectionString()).
                retryOptions(retryOptions(queueListenerProperties)).
                sessionProcessor().
                maxConcurrentSessions(queueListenerProperties.getMaxConcurrentCalls()).
                maxConcurrentCalls(queueListenerProperties.getMaxConcurrentCallsPerSession()).
                queueName(queuePath);
        builder.processMessage(messageHandler);
        builder.processError(errorHandler);
        return builder.buildProcessorClient();
    }

SDK version 7.17.7
java version: 17

Can you, please, tell us why the error occurs and how can we avoid it?

Thanks,
Cristi

@cristibozga
Copy link
Author

G-Here are the retry options:
private static AmqpRetryOptions retryOptions(QueueListenerProperties properties) {
AmqpRetryOptions o = new AmqpRetryOptions();
o.setTryTimeout(Duration.ofMillis(properties.getTimeout()));
o.setMode(AmqpRetryMode.FIXED);
return o;
}
tryTimeout= 3 seconds

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant