diff --git a/sdk/servicebus/microsoft-azure-servicebus/src/main/java/com/microsoft/azure/servicebus/SessionHandlerOptions.java b/sdk/servicebus/microsoft-azure-servicebus/src/main/java/com/microsoft/azure/servicebus/SessionHandlerOptions.java index ccfac87ca552..7834f2101733 100644 --- a/sdk/servicebus/microsoft-azure-servicebus/src/main/java/com/microsoft/azure/servicebus/SessionHandlerOptions.java +++ b/sdk/servicebus/microsoft-azure-servicebus/src/main/java/com/microsoft/azure/servicebus/SessionHandlerOptions.java @@ -73,6 +73,11 @@ public SessionHandlerOptions(int maxConcurrentSessions, int maxConcurrentCallsPe /** * Whether the auto complete is set to true. + * If this value is true, if the handler returns without any failure, then the message is completed and will + * not show up in the session; if any exception is thrown from the handler, the message is abandoned and the + * DeliveryCount of this message will increase by one. If this value is false, if the handler returns without any + * failure, then user has to write the logic to explicitly complete the message, otherwise the message is not + * considered 'completed' and will reappear in the session. * * @return true to complete the message processing automatically on successful execution of the operation; otherwise, false. */ @@ -83,6 +88,10 @@ public boolean isAutoComplete() { /** * Gets the maximum number of concurrent sessions that the pump should initiate. + * Setting this value to be greater than the max number of active sessions in the service will not increase message throughput. + * The session-pump (SDK) will accept MaxConcurrentSessions number of sessions in parallel and dispatch the messages. + * The messages within a session are delivered sequentially. If more than MaxConcurrentSessions number of sessions are present + * in the entity, they will be accepted one-by-one after closing the existing sessions. * * @return The maximum number of concurrent sessions */ @@ -101,6 +110,7 @@ public int getMaxConcurrentCallsPerSession() { /** * Gets the maximum duration within which the lock will be renewed automatically. This value should be greater than the longest message lock duration; for example, the LockDuration Property. + * If a session lock is going to expire, this value is the max duration for the session lock to be automatically renewed. * * @return The maximum duration during which locks are automatically renewed. */ @@ -109,8 +119,14 @@ public Duration getMaxAutoRenewDuration() { } /** - * Gets the time to wait for receiving a message. Defaults to 1 minute. - * @return The wait duration for receive calls. + * Gets the time to wait for receiving a message. + * This is the time the session-pump waits before closing down the current session and switching to a different session. + * This value has an impact on the message throughput. If the value is very large, then every time the SDK waits + * for this duration before closing to make sure that all the messages have been received. If users are having a lot of + * sessions and fewer messages per session, try setting this to be a relative smaller value based on how frequent new + * messages arrive in the session. + * + * @return The wait duration for receive calls. Defaults to 1 minute. */ public Duration getMessageWaitDuration() { return this.messageWaitDuration;