CosmosChangeFeedRequestOptions Class

  • java.lang.Object
    • com.azure.cosmos.models.CosmosChangeFeedRequestOptions

public final class CosmosChangeFeedRequestOptions

Encapsulates options that can be specified for an operation within a change feed request.

Method Summary

Modifier and Type Method and Description
CosmosChangeFeedRequestOptions allVersionsAndDeletes()

Changes the change feed mode so that the change feed will contain events for creations, deletes as well as all intermediary snapshots for updates.

static CosmosChangeFeedRequestOptions createForProcessingFromBeginning(FeedRange feedRange)

Creates a new CosmosChangeFeedRequestOptions instance to start processing change feed items from the beginning of the change feed

static CosmosChangeFeedRequestOptions createForProcessingFromContinuation(String continuation)

Creates a new CosmosChangeFeedRequestOptions instance to start processing change feed items from a previous continuation

static CosmosChangeFeedRequestOptions createForProcessingFromNow(FeedRange feedRange)

Creates a new CosmosChangeFeedRequestOptions instance to start processing change feed items from the current time - so only events for all future changes will be retrieved

static CosmosChangeFeedRequestOptions createForProcessingFromPointInTime(Instant pointInTime, FeedRange feedRange)

Creates a new CosmosChangeFeedRequestOptions instance to start processing change feed items from a certain point in time

CosmosChangeFeedRequestOptions fullFidelity()

Deprecated

Changes the change feed mode so that the change feed will contain events for creations, deletes as well as all intermediary snapshots for updates.

CosmosItemSerializer getCustomItemSerializer()

Gets the custom item serializer defined for this instance of request options

CosmosDiagnosticsThresholds getDiagnosticsThresholds()

Gets the diagnostic thresholds used as an override for a specific operation.

List<String> getExcludedRegions()

Gets the list of regions to be excluded for the request/retries.

FeedRange getFeedRange()

Gets the feed range.

Set<String> getKeywordIdentifiers()

Gets the custom ids.

int getMaxItemCount()

Gets the maximum number of items to be returned in the enumeration operation.

int getMaxPrefetchPageCount()

Gets the maximum number of pages that will be prefetched from the backend asynchronously in the background.

String getThroughputControlGroupName()

Get the throughput control group name.

boolean isQuotaInfoEnabled()

Gets the quotaInfoEnabled setting for change feed request in the Azure Cosmos DB database service.

CosmosChangeFeedRequestOptions setCustomItemSerializer(CosmosItemSerializer customItemSerializer)

Allows specifying a custom item serializer to be used for this operation.

CosmosChangeFeedRequestOptions setDiagnosticsThresholds(CosmosDiagnosticsThresholds operationSpecificThresholds)

Allows overriding the diagnostic thresholds for a specific operation.

CosmosChangeFeedRequestOptions setExcludedRegions(List<String> excludeRegions)

List of regions to exclude for the request/retries.

CosmosChangeFeedRequestOptions setKeywordIdentifiers(Set<String> keywordIdentifiers)

Sets the custom ids.

CosmosChangeFeedRequestOptions setMaxItemCount(int maxItemCount)

Sets the maximum number of items to be returned in the enumeration operation.

CosmosChangeFeedRequestOptions setMaxPrefetchPageCount(int maxPrefetchPageCount)

Sets the maximum number of pages that will be prefetched from the backend asynchronously in the background.

void setQuotaInfoEnabled(boolean quotaInfoEnabled)

Gets the quotaInfoEnabled setting for change feed request in the Azure Cosmos DB database service.

CosmosChangeFeedRequestOptions setThroughputControlGroupName(String throughputControlGroupName)

Set the throughput control group name.

Methods inherited from java.lang.Object

Method Details

allVersionsAndDeletes

public CosmosChangeFeedRequestOptions allVersionsAndDeletes()

Changes the change feed mode so that the change feed will contain events for creations, deletes as well as all intermediary snapshots for updates. Enabling AllVersionsAndDeletes change feed mode requires configuring a retention duration in the change feed policy of the container. ChangeFeedPolicy

Intermediary snapshots of changes as well as deleted documents would be available for processing for 8 minutes before they vanish. When enabling AllVersionsAndDeletes mode you will only be able to process change feed events within the retention window configured in the change feed policy of the container. If you attempt to process a change feed after more than the retention window an error (Status Code 400) will be returned because the events for intermediary updates and deletes have vanished. It would still be possible to process changes using LatestVersion mode even when configuring a AllVersionsAndDeletes change feed policy with retention window on the container and when using LatestVersion mode it doesn't matter whether your are out of the retention window or not - but no events for deletes or intermediary updates would be included. When events are not getting processed within the retention window it is also possible to continue processing future events in AllVersionsAndDeletes mode by querying the change feed with a new CosmosChangeFeedRequestOptions instance.

Returns:

a CosmosChangeFeedRequestOptions instance with AllVersionsAndDeletes mode enabled

createForProcessingFromBeginning

public static CosmosChangeFeedRequestOptions createForProcessingFromBeginning(FeedRange feedRange)

Creates a new CosmosChangeFeedRequestOptions instance to start processing change feed items from the beginning of the change feed

Parameters:

feedRange - The FeedRange that is used to define the scope (entire container, logical partition or subset of a container)

Returns:

createForProcessingFromContinuation

public static CosmosChangeFeedRequestOptions createForProcessingFromContinuation(String continuation)

Creates a new CosmosChangeFeedRequestOptions instance to start processing change feed items from a previous continuation

Parameters:

continuation - The continuation that was retrieved from a previously retrieved FeedResponse

Returns:

createForProcessingFromNow

public static CosmosChangeFeedRequestOptions createForProcessingFromNow(FeedRange feedRange)

Creates a new CosmosChangeFeedRequestOptions instance to start processing change feed items from the current time - so only events for all future changes will be retrieved

Parameters:

feedRange - The FeedRange that is used to define the scope (entire container, logical partition or subset of a container)

Returns:

createForProcessingFromPointInTime

public static CosmosChangeFeedRequestOptions createForProcessingFromPointInTime(Instant pointInTime, FeedRange feedRange)

Creates a new CosmosChangeFeedRequestOptions instance to start processing change feed items from a certain point in time

Parameters:

pointInTime - The point in time from which processing of change feed events should start
feedRange - The FeedRange that is used to define the scope (entire container, logical partition or subset of a container)

Returns:

fullFidelity

@Deprecated
public CosmosChangeFeedRequestOptions fullFidelity()

Deprecated

Changes the change feed mode so that the change feed will contain events for creations, deletes as well as all intermediary snapshots for updates. Enabling AllVersionsAndDeletes change feed mode requires configuring a retention duration in the change feed policy of the container. ChangeFeedPolicy

Intermediary snapshots of changes as well as deleted documents would be available for processing for retention window before they vanish. When enabling AllVersionsAndDeletes mode you will only be able to process change feed events within the retention window configured in the change feed policy of the container. If you attempt to process a change feed after more than the retention window an error (Status Code 400) will be returned because the events for intermediary updates and deletes have vanished. It would still be possible to process changes using LatestVersion mode even when configuring a AllVersionsAndDeletes change feed policy with retention window on the container and when using LatestVersion mode it doesn't matter whether your are out of the retention window or not - but no events for deletes or intermediary updates would be included. When events are not getting processed within the retention window it is also possible to continue processing future events in AllVersionsAndDeletes mode by querying the change feed with a new CosmosChangeFeedRequestOptions instance.

Returns:

a CosmosChangeFeedRequestOptions instance with AllVersionsAndDeletes mode enabled

getCustomItemSerializer

public CosmosItemSerializer getCustomItemSerializer()

Gets the custom item serializer defined for this instance of request options

Returns:

the custom item serializer

getDiagnosticsThresholds

public CosmosDiagnosticsThresholds getDiagnosticsThresholds()

Gets the diagnostic thresholds used as an override for a specific operation. If no operation specific diagnostic threshold has been specified, this method will return null, although at runtime the default thresholds specified at the client-level will be used.

Returns:

the diagnostic thresholds used as an override for a specific operation.

getExcludedRegions

public List getExcludedRegions()

Gets the list of regions to be excluded for the request/retries. These regions are excluded from the preferred region list.

Returns:

a list of excluded regions

getFeedRange

public FeedRange getFeedRange()

Gets the feed range.

Returns:

the feed range.

getKeywordIdentifiers

public Set getKeywordIdentifiers()

Gets the custom ids.

Returns:

the custom ids.

getMaxItemCount

public int getMaxItemCount()

Gets the maximum number of items to be returned in the enumeration operation.

Returns:

the max number of items.

getMaxPrefetchPageCount

public int getMaxPrefetchPageCount()

Gets the maximum number of pages that will be prefetched from the backend asynchronously in the background. By pre-fetching these changes the throughput of processing the change feed records can be increased because the processing doesn't have to stop while waiting for the IO operations to retrieve a new page form the backend to complete. The only scenario where it can be useful to disable prefetching pages (with setMaxPrefetchPageCount(0)) would be when the caller only plans to retrieve just one page - so any prefetched pages would not be used anyway.

Returns:

the modified change feed request options.

getThroughputControlGroupName

public String getThroughputControlGroupName()

Get the throughput control group name.

Returns:

The throughput control group name.

isQuotaInfoEnabled

public boolean isQuotaInfoEnabled()

Gets the quotaInfoEnabled setting for change feed request in the Azure Cosmos DB database service. quotaInfoEnabled is used to enable/disable getting quota related stats

Returns:

true if quotaInfoEnabled is enabled

setCustomItemSerializer

public CosmosChangeFeedRequestOptions setCustomItemSerializer(CosmosItemSerializer customItemSerializer)

Allows specifying a custom item serializer to be used for this operation. If the serializer on the request options is null, the serializer on CosmosClientBuilder is used. If both serializers are null (the default), an internal Jackson ObjectMapper is ued for serialization/deserialization.

Parameters:

customItemSerializer - the custom item serializer for this operation

Returns:

the CosmosChangeFeedRequestOptions.

setDiagnosticsThresholds

public CosmosChangeFeedRequestOptions setDiagnosticsThresholds(CosmosDiagnosticsThresholds operationSpecificThresholds)

Allows overriding the diagnostic thresholds for a specific operation.

Parameters:

operationSpecificThresholds - the diagnostic threshold override for this operation

Returns:

the CosmosQueryRequestOptions.

setExcludedRegions

public CosmosChangeFeedRequestOptions setExcludedRegions(List excludeRegions)

List of regions to exclude for the request/retries. Example "East US" or "East US, West US" These regions will be excluded from the preferred regions list

Parameters:

excludeRegions - list of regions

Returns:

setKeywordIdentifiers

public CosmosChangeFeedRequestOptions setKeywordIdentifiers(Set keywordIdentifiers)

Sets the custom ids.

Parameters:

keywordIdentifiers - the custom ids.

Returns:

the current request options.

setMaxItemCount

public CosmosChangeFeedRequestOptions setMaxItemCount(int maxItemCount)

Sets the maximum number of items to be returned in the enumeration operation.

Parameters:

maxItemCount - the max number of items.

Returns:

the FeedOptionsBase.

setMaxPrefetchPageCount

public CosmosChangeFeedRequestOptions setMaxPrefetchPageCount(int maxPrefetchPageCount)

Sets the maximum number of pages that will be prefetched from the backend asynchronously in the background. By pre-fetching these changes the throughput of processing the change feed records can be increased because the processing doesn't have to stop while waiting for the IO operations to retrieve a new page form the backend to complete. The only scenario where it can be useful to disable prefetching pages (with setMaxPrefetchPageCount(0)) would be when the caller only plans to retrieve just one page - so any prefetched pages would not be used anyway.

Parameters:

maxPrefetchPageCount - the max number of pages that will be prefetched from the backend asynchronously in the background

Returns:

the modified change feed request options.

setQuotaInfoEnabled

public void setQuotaInfoEnabled(boolean quotaInfoEnabled)

Gets the quotaInfoEnabled setting for change feed request in the Azure Cosmos DB database service. quotaInfoEnabled is used to enable/disable getting quota related stats

Parameters:

quotaInfoEnabled - a boolean value indicating whether quotaInfoEnabled is enabled or not

setThroughputControlGroupName

public CosmosChangeFeedRequestOptions setThroughputControlGroupName(String throughputControlGroupName)

Set the throughput control group name.

Parameters:

throughputControlGroupName - The throughput control group name.

Returns:

Applies to