Interface ISubscriptionControl

This feature allows a ISession to subscribe or unsubscribe other sessions to topics, on a single server or across a cluster.

Inherited Members
IFeature.Session
Namespace: PushTechnology.ClientInterface.Client.Features.Control.Topics
Assembly: Diffusion.Client.dll
Syntax
public interface ISubscriptionControl : IFeature
Remarks

Requests to subscribe sessions to topics can be submitted at any time even if the topics do not exist at the server. Topic selectors ITopicSelector are used on subscription to match against topics at the server. The session will become subscribed to any topics that exist at the server that match the selector (unless they are already subscribed, or the session has insufficient permission). The subscription request is also retained at the server so that if any newly-created topics match the selector, the session will then become subscribed to it (unless a subsequent unsubscription cancels it).

Specific sessions (anywhere in a cluster) may be subscribed/unsubscribed if the ISessionId is known.

Subscriptions may also be requested using 'session filters' (see ISession for a full description of session filters), where all sessions (anywhere in a cluster) that satisfy a particular filter expression will be subscribed/unsubscribed. The filter is only evaluated once against the current sessions that exist at the time - it is not retained and applied to any sessions that are created later. In order to be notified of new sessions as they are created ISessionPropertiesListener can be used and those sessions subscribed as required based upon their session properties.

Access control

To directly subscribe or unsubscribe other sessions to topics, a session must have MODIFY_SESSION permission, and SELECT_TOPIC permission for the topic selector used. The subscribed sessions will only be subscribed to matching topics for which they have READ_TOPIC permission.

To directly unsubscribe other sessions, a session must have MODIFY_SESSION permission.

Accessing the feature

This feature is obtained from an ISession as follows:

var subscriptionControl = session.SubscriptionControl;

Added in version 5.0.

Methods

GetTopicSelectionsAsync(ISessionId)

Returns a dictionary of the current topic selection state for a specified session, keyed on topic selection scope.

Declaration
Task<IDictionary<string, List<ITopicSelection>>> GetTopicSelectionsAsync(ISessionId sessionId)
Parameters
Type Name Description
ISessionId sessionId

Identifies the session to return topic selections for.

Returns
Type Description
System.Threading.Tasks.Task<System.Collections.Generic.IDictionary<System.String, System.Collections.Generic.List<ITopicSelection>>>

The Task representing the current operation.

Remarks

Each scope will have an ordered list of selections and/or deselections.

The server conflates selections, so if there has been a selection that is later rendered redundant by a deselection it will not be present. A scope that has been used but fully deselected will therefore not be present in the dictionary and therefore no entry will have an empty list.

If the session has no current selections the dictionary will be empty.

If the task completes successfully, the Task result will be a dictionary of an ordered List of ITopicSelections keyed on scope. If the default scope is in use the key will be an empty string.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null.

System.ArgumentException

The sessionId is an invalid identifier.

NoSuchSessionException

There is no session with the given sessionId on the current server or on any other servers in a clustered environment. Thrown by the returned task.

SessionSecurityException

The calling session does not have VIEW_SESSION permission. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

GetTopicSelectionsAsync(ISessionId, CancellationToken)

Returns a dictionary of the current topic selection state for a specified session, keyed on topic selection scope.

Declaration
Task<IDictionary<string, List<ITopicSelection>>> GetTopicSelectionsAsync(ISessionId sessionId, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

Identifies the session to return topic selections for.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Collections.Generic.IDictionary<System.String, System.Collections.Generic.List<ITopicSelection>>>

The Task representing the current operation.

Remarks

Each scope will have an ordered list of selections and/or deselections.

The server conflates selections, so if there has been a selection that is later rendered redundant by a deselection it will not be present. A scope that has been used but fully deselected will therefore not be present in the dictionary and therefore no entry will have an empty list.

If the session has no current selections the dictionary will be empty.

If the task completes successfully, the Task result will be a dictionary of an ordered List of ITopicSelections keyed on scope. If the default scope is in use the key will be an empty string.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null.

System.ArgumentException

The sessionId is an invalid identifier.

NoSuchSessionException

There is no session with the given sessionId on the current server or on any other servers in a clustered environment. Thrown by the returned task.

SessionSecurityException

The calling session does not have VIEW_SESSION permission. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeAsync(ISessionId, ITopicSelector)

Subscribe another session to topics.

Declaration
Task<object> SubscribeAsync(ISessionId sessionId, ITopicSelector topics)
Parameters
Type Name Description
ISessionId sessionId

The session to subscribe.

ITopicSelector topics

The topics to subscribe to.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

This is equivalent to calling SubscribeAsync(ISessionId, ITopicSelector, String) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeAsync(ISessionId, ITopicSelector, String)

Subscribe another session to topics.

Declaration
Task<object> SubscribeAsync(ISessionId sessionId, ITopicSelector topics, string scope)
Parameters
Type Name Description
ISessionId sessionId

The session to subscribe.

ITopicSelector topics

The topics to subscribe to.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

New subscriptions will be established for existing topics that match the provided topic selector and for which the subscribed session has READ_TOPIC permission. The topic selector will be added to the topic selections of the subscribed session, and re-evaluated when new topics are added or the session's security roles change.

A session that does not have SELECT_TOPIC permission for a topic cannot subscribe directly, but can be subscribed indirectly using this method.

If the subscription was accepted, the task will complete successfully, and the Task result will be null.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null or scope is null.

System.ArgumentException

The sessionId is an invalid identifier or scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeAsync(ISessionId, ITopicSelector, String, CancellationToken)

Subscribe another session to topics.

Declaration
Task<object> SubscribeAsync(ISessionId sessionId, ITopicSelector topics, string scope, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

The session to subscribe.

ITopicSelector topics

The topics to subscribe to.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

New subscriptions will be established for existing topics that match the provided topic selector and for which the subscribed session has READ_TOPIC permission. The topic selector will be added to the topic selections of the subscribed session, and re-evaluated when new topics are added or the session's security roles change.

A session that does not have SELECT_TOPIC permission for a topic cannot subscribe directly, but can be subscribed indirectly using this method.

If the subscription was accepted, the task will complete successfully, and the Task result will be null.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null or scope is null.

System.ArgumentException

The sessionId is an invalid identifier or scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeAsync(ISessionId, ITopicSelector, CancellationToken)

Subscribe another session to topics.

Declaration
Task<object> SubscribeAsync(ISessionId sessionId, ITopicSelector topics, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

The session to subscribe.

ITopicSelector topics

The topics to subscribe to.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

This is equivalent to calling SubscribeAsync(ISessionId, ITopicSelector, String, CancellationToken) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeAsync(ISessionId, String)

Subscribe another session to topics.

Declaration
Task<object> SubscribeAsync(ISessionId sessionId, string topics)
Parameters
Type Name Description
ISessionId sessionId

The session to subscribe.

System.String topics

The topics to subscribe to.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

This is equivalent to calling SubscribeAsync(ISessionId, String, String) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.6.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeAsync(ISessionId, String, String)

Subscribe another session to topics.

Declaration
Task<object> SubscribeAsync(ISessionId sessionId, string topics, string scope)
Parameters
Type Name Description
ISessionId sessionId

The session to subscribe.

System.String topics

The topics to subscribe to.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

New subscriptions will be established for existing topics that match the provided topic selector and for which the subscribed session has READ_TOPIC permission. The topic selector will be added to the topic selections of the subscribed session, and re-evaluated when new topics are added or the session's security roles change.

A session that does not have SELECT_TOPIC permission for a topic cannot subscribe directly, but can be subscribed indirectly using this method.

If the subscription was accepted, the task will complete successfully, and the Task result will be null.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null or scope is null.

System.ArgumentException

The sessionId is an invalid identifier or scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeAsync(ISessionId, String, String, CancellationToken)

Subscribe another session to topics.

Declaration
Task<object> SubscribeAsync(ISessionId sessionId, string topics, string scope, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

The session to subscribe.

System.String topics

The topics to subscribe to.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

New subscriptions will be established for existing topics that match the provided topic selector and for which the subscribed session has READ_TOPIC permission. The topic selector will be added to the topic selections of the subscribed session, and re-evaluated when new topics are added or the session's security roles change.

A session that does not have SELECT_TOPIC permission for a topic cannot subscribe directly, but can be subscribed indirectly using this method.

If the subscription was accepted, the task will complete successfully, and the Task result will be null.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null or scope is null.

System.ArgumentException

The sessionId is an invalid identifier or scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeAsync(ISessionId, String, CancellationToken)

Subscribe another session to topics.

Declaration
Task<object> SubscribeAsync(ISessionId sessionId, string topics, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

The session to subscribe.

System.String topics

The topics to subscribe to.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

This is equivalent to calling SubscribeAsync(ISessionId, String, String, CancellationToken) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.6.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeByFilterAsync(String, ITopicSelector)

Subscribe sessions that satisfy a given session filter to topics.

Declaration
Task<ISubscriptionByFilterResult> SubscribeByFilterAsync(string filter, ITopicSelector topics)
Parameters
Type Name Description
System.String filter

The session filter expression.

ITopicSelector topics

The topics to subscribe to.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

This is equivalent to calling SubscribeByFilterAsync(String, ITopicSelector, String) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeByFilterAsync(String, ITopicSelector, String)

Subscribe sessions that satisfy a given session filter to topics. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> SubscribeByFilterAsync(string filter, ITopicSelector topics, string scope)
Parameters
Type Name Description
System.String filter

The session filter expression.

ITopicSelector topics

The topics to subscribe to.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the subscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult. This provides the number of sessions that satisfied the filter and qualified for subscription by calling NumberSelected.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null or scope is null.

System.ArgumentException

The scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeByFilterAsync(String, ITopicSelector, String, CancellationToken)

Subscribe sessions that satisfy a given session filter to topics. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> SubscribeByFilterAsync(string filter, ITopicSelector topics, string scope, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String filter

The session filter expression.

ITopicSelector topics

The topics to subscribe to.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the subscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult. This provides the number of sessions that satisfied the filter and qualified for subscription by calling NumberSelected.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null or scope is null.

System.ArgumentException

The scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeByFilterAsync(String, ITopicSelector, CancellationToken)

Subscribe sessions that satisfy a given session filter to topics.

Declaration
Task<ISubscriptionByFilterResult> SubscribeByFilterAsync(string filter, ITopicSelector topics, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String filter

The session filter expression.

ITopicSelector topics

The topics to subscribe to.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

This is equivalent to calling SubscribeByFilterAsync(String, ITopicSelector, String, CancellationToken) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeByFilterAsync(String, String)

Subscribe sessions that satisfy a given session filter to topics.

Declaration
Task<ISubscriptionByFilterResult> SubscribeByFilterAsync(string filter, string topics)
Parameters
Type Name Description
System.String filter

The session filter expression.

System.String topics

The topics to subscribe to.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

This is equivalent to calling SubscribeByFilterAsync(String, String, String) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.6.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeByFilterAsync(String, String, String)

Subscribe sessions that satisfy a given session filter to topics. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> SubscribeByFilterAsync(string filter, string topics, string scope)
Parameters
Type Name Description
System.String filter

The session filter expression.

System.String topics

The topics to subscribe to.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the subscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult. This provides the number of sessions that satisfied the filter and qualified for subscription by calling NumberSelected.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null or scope is null.

System.ArgumentException

The scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeByFilterAsync(String, String, String, CancellationToken)

Subscribe sessions that satisfy a given session filter to topics. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> SubscribeByFilterAsync(string filter, string topics, string scope, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String filter

The session filter expression.

System.String topics

The topics to subscribe to.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the subscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult. This provides the number of sessions that satisfied the filter and qualified for subscription by calling NumberSelected.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null or scope is null.

System.ArgumentException

The scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

SubscribeByFilterAsync(String, String, CancellationToken)

Subscribe sessions that satisfy a given session filter to topics.

Declaration
Task<ISubscriptionByFilterResult> SubscribeByFilterAsync(string filter, string topics, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String filter

The session filter expression.

System.String topics

The topics to subscribe to.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

This is equivalent to calling SubscribeByFilterAsync(String, String, String, CancellationToken) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.6.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAllScopesAsync(ISessionId, ITopicSelector)

Unsubscribe another session from topics for all topic selection scopes.

Declaration
Task<object> UnsubscribeAllScopesAsync(ISessionId sessionId, ITopicSelector topics)
Parameters
Type Name Description
ISessionId sessionId

Identifies the session to unsubscribe.

ITopicSelector topics

The topics to unsubscribe from.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

There is no session with the given sessionId on the current server or on any other servers in a clustered environment. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAllScopesAsync(ISessionId, ITopicSelector, CancellationToken)

Unsubscribe another session from topics for all topic selection scopes.

Declaration
Task<object> UnsubscribeAllScopesAsync(ISessionId sessionId, ITopicSelector topics, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

Identifies the session to unsubscribe.

ITopicSelector topics

The topics to unsubscribe from.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

There is no session with the given sessionId on the current server or on any other servers in a clustered environment. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAllScopesAsync(ISessionId, String)

Unsubscribe another session from topics for all topic selection scopes.

Declaration
Task<object> UnsubscribeAllScopesAsync(ISessionId sessionId, string topics)
Parameters
Type Name Description
ISessionId sessionId

Identifies the session to unsubscribe.

System.String topics

The topics to unsubscribe from.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

There is no session with the given sessionId on the current server or on any other servers in a clustered environment. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAllScopesAsync(ISessionId, String, CancellationToken)

Unsubscribe another session from topics for all topic selection scopes.

Declaration
Task<object> UnsubscribeAllScopesAsync(ISessionId sessionId, string topics, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

Identifies the session to unsubscribe.

System.String topics

The topics to unsubscribe from.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

There is no session with the given sessionId on the current server or on any other servers in a clustered environment. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAllScopesByFilterAsync(String, ITopicSelector)

Unsubscribe sessions that satisfy a given session filter from topics for all scopes. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeAllScopesByFilterAsync(string filter, ITopicSelector topics)
Parameters
Type Name Description
System.String filter

The session filter expression.

ITopicSelector topics

The topics to unsubscribe from.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the unsubscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAllScopesByFilterAsync(String, ITopicSelector, CancellationToken)

Unsubscribe sessions that satisfy a given session filter from topics for all scopes. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeAllScopesByFilterAsync(string filter, ITopicSelector topics, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String filter

The session filter expression.

ITopicSelector topics

The topics to unsubscribe from.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the unsubscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAllScopesByFilterAsync(String, String)

Unsubscribe sessions that satisfy a given session filter from topics for all scopes. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeAllScopesByFilterAsync(string filter, string topics)
Parameters
Type Name Description
System.String filter

The session filter expression.

System.String topics

The topics to unsubscribe from.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the unsubscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAllScopesByFilterAsync(String, String, CancellationToken)

Unsubscribe sessions that satisfy a given session filter from topics for all scopes. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeAllScopesByFilterAsync(string filter, string topics, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String filter

The session filter expression.

System.String topics

The topics to unsubscribe from.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the unsubscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAsync(ISessionId, ITopicSelector)

Unsubscribe another session from topics.

Declaration
Task<object> UnsubscribeAsync(ISessionId sessionId, ITopicSelector topics)
Parameters
Type Name Description
ISessionId sessionId

The session to unsubscribe.

ITopicSelector topics

The topics to unsubscribe from.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

This is equivalent to calling UnsubscribeAsync(ISessionId, ITopicSelector, String) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAsync(ISessionId, ITopicSelector, String)

Unsubscribe another session from topics.

Declaration
Task<object> UnsubscribeAsync(ISessionId sessionId, ITopicSelector topics, string scope)
Parameters
Type Name Description
ISessionId sessionId

The session to unsubscribe.

ITopicSelector topics

The topics to unsubscribe from.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null or scope is null.

System.ArgumentException

The sessionId is an invalid identifier or scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAsync(ISessionId, ITopicSelector, String, CancellationToken)

Unsubscribe another session from topics.

Declaration
Task<object> UnsubscribeAsync(ISessionId sessionId, ITopicSelector topics, string scope, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

The session to unsubscribe.

ITopicSelector topics

The topics to unsubscribe from.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null or scope is null.

System.ArgumentException

The sessionId is an invalid identifier or scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAsync(ISessionId, ITopicSelector, CancellationToken)

Unsubscribe another session from topics.

Declaration
Task<object> UnsubscribeAsync(ISessionId sessionId, ITopicSelector topics, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

The session to unsubscribe.

ITopicSelector topics

The topics to unsubscribe from.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

This is equivalent to calling UnsubscribeAsync(ISessionId, ITopicSelector, String, CancellationToken) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAsync(ISessionId, String)

Unsubscribe another session from topics.

Declaration
Task<object> UnsubscribeAsync(ISessionId sessionId, string topics)
Parameters
Type Name Description
ISessionId sessionId

The session to unsubscribe.

System.String topics

The topics to unsubscribe from.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

This is equivalent to calling UnsubscribeAsync(ISessionId, String, String) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.6.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAsync(ISessionId, String, String)

Unsubscribe another session from topics.

Declaration
Task<object> UnsubscribeAsync(ISessionId sessionId, string topics, string scope)
Parameters
Type Name Description
ISessionId sessionId

The session to unsubscribe.

System.String topics

The topics to unsubscribe from.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null or scope is null.

System.ArgumentException

The sessionId is an invalid identifier or scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAsync(ISessionId, String, String, CancellationToken)

Unsubscribe another session from topics.

Declaration
Task<object> UnsubscribeAsync(ISessionId sessionId, string topics, string scope, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

The session to unsubscribe.

System.String topics

The topics to unsubscribe from.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null or scope is null.

System.ArgumentException

The sessionId is an invalid identifier or scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeAsync(ISessionId, String, CancellationToken)

Unsubscribe another session from topics.

Declaration
Task<object> UnsubscribeAsync(ISessionId sessionId, string topics, CancellationToken cancellationToken)
Parameters
Type Name Description
ISessionId sessionId

The session to unsubscribe.

System.String topics

The topics to unsubscribe from.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<System.Object>

The Task representing the current operation.

Remarks

This is equivalent to calling UnsubscribeAsync(ISessionId, String, String, CancellationToken) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.6.

Exceptions
Type Condition
System.ArgumentNullException

The sessionId is null or topics expression is null.

System.ArgumentException

The sessionId is an invalid identifier.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

NoSuchSessionException

The identified session was closed before the response was delivered. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION permission. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeByFilterAsync(String, ITopicSelector)

Unsubscribe sessions that satisfy a given session filter from topics.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeByFilterAsync(string filter, ITopicSelector topics)
Parameters
Type Name Description
System.String filter

The session filter expression.

ITopicSelector topics

The topics to unsubscribe from.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

This is equivalent to calling UnsubscribeByFilterAsync(String, ITopicSelector, String) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeByFilterAsync(String, ITopicSelector, String)

Unsubscribe sessions that satisfy a given session filter from topics. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeByFilterAsync(string filter, ITopicSelector topics, string scope)
Parameters
Type Name Description
System.String filter

The session filter expression.

ITopicSelector topics

The topics to unsubscribe from.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the unsubscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult. This provides the number of sessions that satisfied the filter and qualified for unsubscription by calling NumberSelected.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null or scope is null.

System.ArgumentException

The scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeByFilterAsync(String, ITopicSelector, String, CancellationToken)

Unsubscribe sessions that satisfy a given session filter from topics. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeByFilterAsync(string filter, ITopicSelector topics, string scope, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String filter

The session filter expression.

ITopicSelector topics

The topics to unsubscribe from.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the unsubscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult. This provides the number of sessions that satisfied the filter and qualified for unsubscription by calling NumberSelected.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null or scope is null.

System.ArgumentException

The scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeByFilterAsync(String, ITopicSelector, CancellationToken)

Unsubscribe sessions that satisfy a given session filter from topics.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeByFilterAsync(string filter, ITopicSelector topics, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String filter

The session filter expression.

ITopicSelector topics

The topics to unsubscribe from.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

This is equivalent to calling UnsubscribeByFilterAsync(String, ITopicSelector, String, CancellationToken) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeByFilterAsync(String, String)

Unsubscribe sessions that satisfy a given session filter from topics.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeByFilterAsync(string filter, string topics)
Parameters
Type Name Description
System.String filter

The session filter expression.

System.String topics

The topics to unsubscribe from.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

This is equivalent to calling UnsubscribeByFilterAsync(String, String, String) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.6.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeByFilterAsync(String, String, String)

Unsubscribe sessions that satisfy a given session filter from topics. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeByFilterAsync(string filter, string topics, string scope)
Parameters
Type Name Description
System.String filter

The session filter expression.

System.String topics

The topics to unsubscribe from.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the unsubscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult. This provides the number of sessions that satisfied the filter and qualified for unsubscription by calling NumberSelected.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null or scope is null.

System.ArgumentException

The scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeByFilterAsync(String, String, String, CancellationToken)

Unsubscribe sessions that satisfy a given session filter from topics. In a clustered environment the filter will be applied to all servers in the cluster.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeByFilterAsync(string filter, string topics, string scope, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String filter

The session filter expression.

System.String topics

The topics to unsubscribe from.

System.String scope

Specifies the scope of the selection. See Topic Selection Scopes in ITopics.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

If the unsubscription was accepted, the task will complete successfully, and the Task result will bear a ISubscriptionByFilterResult. This provides the number of sessions that satisfied the filter and qualified for unsubscription by calling NumberSelected.

Added in version 6.12.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null or scope is null.

System.ArgumentException

The scope starts with '$'.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

UnsubscribeByFilterAsync(String, String, CancellationToken)

Unsubscribe sessions that satisfy a given session filter from topics.

Declaration
Task<ISubscriptionByFilterResult> UnsubscribeByFilterAsync(string filter, string topics, CancellationToken cancellationToken)
Parameters
Type Name Description
System.String filter

The session filter expression.

System.String topics

The topics to unsubscribe from.

System.Threading.CancellationToken cancellationToken

The cancellation token used to cancel the current operation.

Returns
Type Description
System.Threading.Tasks.Task<ISubscriptionByFilterResult>

The Task representing the current operation.

Remarks

This is equivalent to calling UnsubscribeByFilterAsync(String, String, String, CancellationToken) using the default selection scope. See Topic Selection Scopes in ITopics.

Added in version 6.6.

Exceptions
Type Condition
System.ArgumentNullException

The filter is null or the topics expression is null.

TopicSelectorFormatException

The topics expression is not a valid selector expression.

InvalidFilterException

The filter was invalid. Thrown by the returned task.

SessionSecurityException

The calling session does not have MODIFY_SESSION and VIEW_SESSION global permissions. Thrown by the returned task.

SessionSecurityException

The calling session does not have SELECT_TOPIC permission for the selector expression. Thrown by the returned task.

SessionClosedException

The calling session is closed. Thrown by the returned task.

ClusterRoutingException

The operation failed due to a transient cluster error. Thrown by the returned task.

Back to top