[
https://issues.apache.org/jira/browse/CAMEL-23938?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Omar Atie reassigned CAMEL-23938:
---------------------------------
Assignee: Omar Atie
> 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
> Assignee: Omar Atie
> Priority: Major
> Labels: help-wanted
>
> 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)