Claus Ibsen created CAMEL-23938:
-----------------------------------
Summary: camel-azure-servicebus: add Camel-managed session lock
renewal for session-enabled consumers
Key: CAMEL-23938
URL: https://issues.apache.org/jira/browse/CAMEL-23938
Project: Camel
Issue Type: Improvement
Components: camel-azure-servicebus
Reporter: Claus Ibsen
Follow-up from CAMEL-23937.
The fix in CAMEL-23937 adds Camel-managed lock renewal for non-session Azure
Service Bus consumers using
{{ServiceBusReceiverAsyncClient.renewMessageLock()}}. However, session-enabled
consumers are explicitly excluded because they require a different API:
* Session locks must be renewed via {{renewSessionLock()}} instead of
{{renewMessageLock()}}
* This requires a session-bound receiver client
({{ServiceBusReceiverAsyncClient}} created with a specific session ID)
* The session ID is only known at message-receive time, not at consumer startup
The current code in {{ServiceBusConsumer.doStart()}} skips lock renewal setup
when {{isSessionEnabled()}} is true. This means session-enabled consumers in
async routes still suffer from the same lock-expiry problem described in
CAMEL-23937.
The implementation should:
# Create session-bound async receiver clients on demand (keyed by session ID)
# Use {{renewSessionLock()}} instead of {{renewMessageLock()}} for renewal
# Integrate with the existing {{LockRenewer}} infrastructure or create a
session-aware variant
# Clean up session-bound clients when no more exchanges for that session are in
flight
--
This message was sent by Atlassian Jira
(v8.20.10#820010)