Package com.microsoft.azure.servicebus
Class SessionHandlerOptions
- java.lang.Object
-
- com.microsoft.azure.servicebus.SessionHandlerOptions
-
public final class SessionHandlerOptions extends Object
The OnSession handler processing options.
-
-
Constructor Summary
Constructors Constructor Description SessionHandlerOptions()
Default constructor with default values DefaultgetMaxConcurrentSessions()
is 1 DefaultgetMaxConcurrentCallsPerSession()
is 1 DefaultgetMaxAutoRenewDuration()
is 5 minutes DefaultisAutoComplete()
is true.SessionHandlerOptions(int maxConcurrentSessions, boolean autoComplete, Duration maxAutoRenewDuration)
SessionHandlerOptions(int maxConcurrentSessions, int maxConcurrentCallsPerSession, boolean autoComplete, Duration maxAutoRenewDuration)
SessionHandlerOptions(int maxConcurrentSessions, int maxConcurrentCallsPerSession, boolean autoComplete, Duration maxAutoRenewDuration, Duration messageWaitDuration)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Duration
getMaxAutoRenewDuration()
Gets the maximum duration within which the lock will be renewed automatically.int
getMaxConcurrentCallsPerSession()
Gets the maximum number of concurrent calls to the callback the message pump should initiate for each session.int
getMaxConcurrentSessions()
Gets the maximum number of concurrent sessions that the pump should initiate.Duration
getMessageWaitDuration()
Gets the time to wait for receiving a message.boolean
isAutoComplete()
Whether the auto complete is set to true.String
toString()
-
-
-
Constructor Detail
-
SessionHandlerOptions
public SessionHandlerOptions()
Default constructor with default values DefaultgetMaxConcurrentSessions()
is 1 DefaultgetMaxConcurrentCallsPerSession()
is 1 DefaultgetMaxAutoRenewDuration()
is 5 minutes DefaultisAutoComplete()
is true. DefaultgetMessageWaitDuration()
is 1 minute
-
SessionHandlerOptions
public SessionHandlerOptions(int maxConcurrentSessions, boolean autoComplete, Duration maxAutoRenewDuration)
- Parameters:
maxConcurrentSessions
- maximum number of concurrent sessions accepted by the session pumpautoComplete
- true if the pump should automatically complete message after onMessageHandler action is completed. false otherwise.maxAutoRenewDuration
- - Maximum duration within which the client keeps renewing the session lock if the processing of the session messages or onclose action is not completed by the handler.
-
SessionHandlerOptions
public SessionHandlerOptions(int maxConcurrentSessions, int maxConcurrentCallsPerSession, boolean autoComplete, Duration maxAutoRenewDuration)
- Parameters:
maxConcurrentSessions
- maximum number of concurrent sessions accepted by the session pumpmaxConcurrentCallsPerSession
- maximum number of concurrent calls to the onMessage handlerautoComplete
- true if the pump should automatically complete message after onMessageHandler action is completed. false otherwisemaxAutoRenewDuration
- Maximum duration within which the client keeps renewing the session lock if the processing of the session messages or onclose action is not completed by the handler.
-
SessionHandlerOptions
public SessionHandlerOptions(int maxConcurrentSessions, int maxConcurrentCallsPerSession, boolean autoComplete, Duration maxAutoRenewDuration, Duration messageWaitDuration)
- Parameters:
maxConcurrentSessions
- maximum number of concurrent sessions accepted by the session pumpmaxConcurrentCallsPerSession
- maximum number of concurrent calls to the onMessage handlerautoComplete
- true if the pump should automatically complete message after onMessageHandler action is completed. false otherwisemaxAutoRenewDuration
- Maximum duration within which the client keeps renewing the session lock if the processing of the session messages or onclose action is not completed by the handler.messageWaitDuration
- Duration to wait for receiving the message
-
-
Method Detail
-
isAutoComplete
public boolean isAutoComplete()
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.- Returns:
- true to complete the message processing automatically on successful execution of the operation; otherwise, false.
-
getMaxConcurrentSessions
public int getMaxConcurrentSessions()
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. - Returns:
- The maximum number of concurrent sessions
-
getMaxConcurrentCallsPerSession
public int getMaxConcurrentCallsPerSession()
Gets the maximum number of concurrent calls to the callback the message pump should initiate for each session.- Returns:
- The maximum number of concurrent calls to the callback.
-
getMaxAutoRenewDuration
public Duration getMaxAutoRenewDuration()
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.- Returns:
- The maximum duration during which locks are automatically renewed.
-
getMessageWaitDuration
public Duration getMessageWaitDuration()
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. - Returns:
- The wait duration for receive calls. Defaults to 1 minute.
-
-