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)

Reply via email to