Skip to main content

Data Subscriptions: Maintenance Operations

Deletion

Subscriptions can be entirely deleted from the system.

This operation can be very useful in ad-hoc subscription scenarios when a lot of subscriptions tasks information may accumulate, making tasks management very hard.

void Delete(string name, string database = null);
Task DeleteAsync(string name, string database = null, CancellationToken token = default);

usage:

store.Subscriptions.Delete(subscriptionName);

Dropping connection

Subscription connections with workers can be dropped remotely.
A dropped worker will not try to reconnect to the server.

void DropConnection(string name, string database = null);
Task DropConnectionAsync(string name, string database = null, CancellationToken token = default);

usage:

store.Subscriptions.DropConnection(subscriptionName);

Disabling subscription

This operation can only be performed through the management studio

Updating subscription

This operation can only be performed through the management studio

Getting subscription status

SubscriptionState GetSubscriptionState(string subscriptionName, string database = null);
Task<SubscriptionState> GetSubscriptionStateAsync(string subscriptionName, string database = null, CancellationToken token = default);

usage:

var subscriptionState = store.Subscriptions.GetSubscriptionState(subscriptionName);
MemberTypeDescription
QuerystringSubscription's RQL like query.
LastBatchAckTimeDateTime?Last time a batch processing progress was acknowledged.
NodeTagstringProcessing server's node tag
MentorNodestringThe mentor node that was manually set.
SubscriptionNamestringSubscription's name, and also it's unique identifier
SubscriptionIdlongSubscription's internal identifier (cluster's operation etag during subscription creation)
ChangeVectorForNextBatchStartingPointstringChange vector, starting from which the subscription will send documents. This value is updated manually, or automatically on batch acknowledgment
DisabledboolIf true, subscription will not allow workers to connect
LastClientConnectionTimeDateTime?Time when last client was connected (value sustained after disconnection)

DocumentSubscriptions class

The DocumentSubscriptions class is the class that manages all interaction with the data subscriptions.
The class is available through DocumentStore's Subscriptions property.

Method SignatureReturn typeDescription
Create<T>(SubscriptionCreationOptions<T> options, string database)stringCreates a new data subscription.
Create(SubscriptionCreationOptions criteria, string database)stringCreates a new data subscription.
Create(SubscriptionCreationOptions criteria, string database)stringCreates a new data subscription.
CreateAsync<T>(SubscriptionCreationOptions<T> options, string database)Task<string>Creates a new data subscription.
CreateAsync<T>(Expression<Func<T, bool>> predicate, SubscriptionCreationOptions options, string database)Task<string>Creates a new data subscription.
Delete(string name, string database)voidDeletes subscription.
DeleteAsync(string name, string database)TaskDeletes subscription.
DropConnection(string name, string database)voidDrops existing subscription connection with worker.
DropConnectionAsync(string name, string database)TaskDrops existing subscription connection with worker.
GetSubscriptions(int start, int take, string database)List<SubscriptionState>Returns subscriptions list.
GetSubscriptionsAsync(int start, int take, string database)Task<List<SubscriptionState>>Returns subscriptions list.
GetSubscriptionState(string subscriptionName, string database)SubscriptionState Get specific subscription state.
GetSubscriptionStateAsync(string subscriptionName, string database)Task<SubscriptionState> Get specific subscription state.
GetSubscriptionWorker<T>(string subscriptionName, string database)SubscriptionWorker<T>Generates a subscription worker, using default configurations, that processes documents deserialized to T type .
GetSubscriptionWorker(string subscriptionName, string database)SubscriptionWorker<dynamic>Generates a subscription worker, using default configurations, that processes documents in it's raw BlittableJsonReader, wrapped by dynamic object.
GetSubscriptionWorker(SubscriptionWorkerOptions options, string database)SubscriptionWorker<T>Generates a subscription worker, using default configurations, that processes documents deserialized to T type .
GetSubscriptionWorker(SubscriptionWorkerOptions options, string database)SubscriptionWorker<dynamic>Generates a subscription worker, using default configurations, that processes documents in it's raw BlittableJsonReader, wrapped by dynamic object.