Class SessionHandlerOptions


  • public final class SessionHandlerOptions
    extends Object
    The OnSession handler processing options.
    • Constructor Detail

      • SessionHandlerOptions

        public SessionHandlerOptions​(int maxConcurrentSessions,
                                     boolean autoComplete,
                                     Duration maxAutoRenewDuration)
        Parameters:
        maxConcurrentSessions - maximum number of concurrent sessions accepted by the session pump
        autoComplete - 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 pump
        maxConcurrentCallsPerSession - maximum number of concurrent calls to the onMessage handler
        autoComplete - 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,
                                     Duration messageWaitDuration)
        Parameters:
        maxConcurrentSessions - maximum number of concurrent sessions accepted by the session pump
        maxConcurrentCallsPerSession - maximum number of concurrent calls to the onMessage handler
        autoComplete - 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.
        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.