public class ShardRecordProcessorCheckpointer extends Object implements RecordProcessorCheckpointer
Constructor and Description |
---|
ShardRecordProcessorCheckpointer() |
Modifier and Type | Method and Description |
---|---|
void |
checkpoint()
This method will checkpoint the progress at the last data record that was delivered to the record processor.
|
void |
checkpoint(software.amazon.awssdk.services.kinesis.model.Record record)
This method will checkpoint the progress at the provided record.
|
void |
checkpoint(String sequenceNumber)
This method will checkpoint the progress at the provided sequenceNumber.
|
void |
checkpoint(String sequenceNumber,
long subSequenceNumber)
This method will checkpoint the progress at the provided sequenceNumber and subSequenceNumber, the latter for
aggregated records produced with the Producer Library.
|
void |
largestPermittedCheckpointValue(ExtendedSequenceNumber largestPermittedCheckpointValue) |
PreparedCheckpointer |
prepareCheckpoint()
This method will record a pending checkpoint at the last data record that was delivered to the record processor.
|
PreparedCheckpointer |
prepareCheckpoint(byte[] applicationState)
This method will record a pending checkpoint at the last data record that was delivered to the record processor.
|
PreparedCheckpointer |
prepareCheckpoint(software.amazon.awssdk.services.kinesis.model.Record record)
This method will record a pending checkpoint at the at the provided record.
|
PreparedCheckpointer |
prepareCheckpoint(software.amazon.awssdk.services.kinesis.model.Record record,
byte[] applicationState)
This method will record a pending checkpoint at the at the provided record.
|
PreparedCheckpointer |
prepareCheckpoint(String sequenceNumber)
This method will record a pending checkpoint at the provided sequenceNumber.
|
PreparedCheckpointer |
prepareCheckpoint(String sequenceNumber,
byte[] applicationState)
This method will record a pending checkpoint at the provided sequenceNumber.
|
PreparedCheckpointer |
prepareCheckpoint(String sequenceNumber,
long subSequenceNumber)
This method will record a pending checkpoint at the provided sequenceNumber and subSequenceNumber, the latter for
aggregated records produced with the Producer Library.
|
PreparedCheckpointer |
prepareCheckpoint(String sequenceNumber,
long subSequenceNumber,
byte[] applicationState)
This method will record a pending checkpoint at the provided sequenceNumber and subSequenceNumber, the latter for
aggregated records produced with the Producer Library.
|
void |
sequenceNumberAtShardEnd(ExtendedSequenceNumber extendedSequenceNumber)
Used to remember the last extended sequence number before SHARD_END to allow us to prevent the checkpointer
from checkpointing at the end of the shard twice (i.e.
|
void |
setInitialCheckpointValue(ExtendedSequenceNumber initialCheckpoint) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
checkpointer
public void checkpoint() throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
checkpoint
in interface RecordProcessorCheckpointer
KinesisClientLibDependencyException
- Encountered an issue when storing the checkpoint. The application can
backoff and retry.InvalidStateException
- Can't store checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.public void checkpoint(software.amazon.awssdk.services.kinesis.model.Record record) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException, IllegalArgumentException
RecordProcessorCheckpointer.checkpoint()
but provides the ability to specify the record at which to
checkpoint.checkpoint
in interface RecordProcessorCheckpointer
record
- A record at which to checkpoint in this shard. Upon failover,
the Kinesis Client Library will start fetching records after this record's sequence number.KinesisClientLibDependencyException
- Encountered an issue when storing the checkpoint. The application can
backoff and retry.InvalidStateException
- Can't store checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.IllegalArgumentException
public void checkpoint(String sequenceNumber) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException, IllegalArgumentException
RecordProcessorCheckpointer.checkpoint()
but provides the ability to specify the sequence number at which to
checkpoint.checkpoint
in interface RecordProcessorCheckpointer
sequenceNumber
- A sequence number at which to checkpoint in this shard. Upon failover,
the Kinesis Client Library will start fetching records after this sequence number.KinesisClientLibDependencyException
- Encountered an issue when storing the checkpoint. The application can
backoff and retry.InvalidStateException
- Can't store checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.IllegalArgumentException
- The sequence number is invalid for one of the following reasons:
1.) It appears to be out of range, i.e. it is smaller than the last check point value, or larger than the
greatest sequence number seen by the associated record processor.
2.) It is not a valid sequence number for a record in this shard.public void checkpoint(String sequenceNumber, long subSequenceNumber) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException, IllegalArgumentException
RecordProcessorCheckpointer.checkpoint()
but provides the ability to specify the sequence and subsequence numbers at which to checkpoint.checkpoint
in interface RecordProcessorCheckpointer
sequenceNumber
- A sequence number at which to checkpoint in this shard. Upon failover, the Kinesis
Client Library will start fetching records after the given sequence and subsequence numbers.subSequenceNumber
- A subsequence number at which to checkpoint within this shard. Upon failover, the
Kinesis Client Library will start fetching records after the given sequence and subsequence numbers.KinesisClientLibDependencyException
- Encountered an issue when storing the checkpoint. The application can
backoff and retry.InvalidStateException
- Can't store checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.IllegalArgumentException
- The sequence number is invalid for one of the following reasons:
1.) It appears to be out of range, i.e. it is smaller than the last check point value, or larger than the
greatest sequence number seen by the associated record processor.
2.) It is not a valid sequence number for a record in this shard.public PreparedCheckpointer prepareCheckpoint() throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
prepareCheckpoint
in interface RecordProcessorCheckpointer
KinesisClientLibDependencyException
- Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException
- Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.public PreparedCheckpointer prepareCheckpoint(byte[] applicationState) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
prepareCheckpoint
in interface RecordProcessorCheckpointer
applicationState
- arbitrary application state that will be passed to the next record processor that
processes the shard.KinesisClientLibDependencyException
- Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException
- Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.public PreparedCheckpointer prepareCheckpoint(software.amazon.awssdk.services.kinesis.model.Record record, byte[] applicationState) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
RecordProcessorCheckpointer.prepareCheckpoint()
but provides the ability to specify the record and application state at which to
prepare the checkpoint.prepareCheckpoint
in interface RecordProcessorCheckpointer
record
- A record at which to prepare checkpoint in this shard.applicationState
- arbitrary application state that will be passed to the next record processor that
processes the shard.
Application should use this to assist with idempotency across failover by calling prepareCheckpoint before having
side effects, then by calling checkpoint on the returned PreparedCheckpointer after side effects are complete.
Use the sequence number and application state passed in to init() to behave idempotently.KinesisClientLibDependencyException
- Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException
- Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.public PreparedCheckpointer prepareCheckpoint(software.amazon.awssdk.services.kinesis.model.Record record) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
RecordProcessorCheckpointer.prepareCheckpoint()
but provides the ability to specify the record at which to prepare the checkpoint.prepareCheckpoint
in interface RecordProcessorCheckpointer
record
- A record at which to prepare checkpoint in this shard.
Application should use this to assist with idempotency across failover by calling prepareCheckpoint before having
side effects, then by calling checkpoint on the returned PreparedCheckpointer after side effects are complete.
Use the sequence number and application state passed in to init() to behave idempotently.KinesisClientLibDependencyException
- Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException
- Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.public PreparedCheckpointer prepareCheckpoint(String sequenceNumber) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
RecordProcessorCheckpointer.prepareCheckpoint()
but provides the ability to specify the sequence number at which to checkpoint.prepareCheckpoint
in interface RecordProcessorCheckpointer
sequenceNumber
- A sequence number at which to prepare checkpoint in this shard.KinesisClientLibDependencyException
- Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException
- Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.public PreparedCheckpointer prepareCheckpoint(String sequenceNumber, byte[] applicationState) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException, IllegalArgumentException
RecordProcessorCheckpointer.prepareCheckpoint()
but provides the ability to specify the sequence number and application state
at which to checkpoint.prepareCheckpoint
in interface RecordProcessorCheckpointer
sequenceNumber
- A sequence number at which to prepare checkpoint in this shard.applicationState
- arbitrary application state that will be passed to the next record processor that
processes the shard.KinesisClientLibDependencyException
- Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException
- Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.IllegalArgumentException
- The sequence number is invalid for one of the following reasons:
1.) It appears to be out of range, i.e. it is smaller than the last check point value, or larger than the
greatest sequence number seen by the associated record processor.
2.) It is not a valid sequence number for a record in this shard.public PreparedCheckpointer prepareCheckpoint(String sequenceNumber, long subSequenceNumber) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException
RecordProcessorCheckpointer.prepareCheckpoint()
but provides the ability to specify the sequence number at which to checkpointprepareCheckpoint
in interface RecordProcessorCheckpointer
sequenceNumber
- A sequence number at which to prepare checkpoint in this shard.subSequenceNumber
- A subsequence number at which to prepare checkpoint within this shard.KinesisClientLibDependencyException
- Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException
- Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.public PreparedCheckpointer prepareCheckpoint(String sequenceNumber, long subSequenceNumber, byte[] applicationState) throws KinesisClientLibDependencyException, InvalidStateException, ThrottlingException, ShutdownException, IllegalArgumentException
RecordProcessorCheckpointer.prepareCheckpoint()
but provides the ability to specify the sequence number, subsequence number, and application state at which to
checkpoint.prepareCheckpoint
in interface RecordProcessorCheckpointer
sequenceNumber
- A sequence number at which to prepare checkpoint in this shard.subSequenceNumber
- A subsequence number at which to prepare checkpoint within this shard.applicationState
- arbitrary application state that will be passed to the next record processor that
processes the shard.KinesisClientLibDependencyException
- Encountered an issue when storing the pending checkpoint. The
application can backoff and retry.InvalidStateException
- Can't store pending checkpoint.
Unable to store the checkpoint in the DynamoDB table (e.g. table doesn't exist).ThrottlingException
- Can't store pending checkpoint. Can be caused by checkpointing too frequently.
Consider increasing the throughput/capacity of the checkpoint store or reducing checkpoint frequency.ShutdownException
- The record processor instance has been shutdown. Another instance may have
started processing some of these records already.
The application should abort processing via this ShardRecordProcessor instance.IllegalArgumentException
- The sequence number is invalid for one of the following reasons:
1.) It appears to be out of range, i.e. it is smaller than the last check point value, or larger than the
greatest sequence number seen by the associated record processor.
2.) It is not a valid sequence number for a record in this shard.public void setInitialCheckpointValue(ExtendedSequenceNumber initialCheckpoint)
public void largestPermittedCheckpointValue(ExtendedSequenceNumber largestPermittedCheckpointValue)
largestPermittedCheckpointValue
- the largest permitted checkpointpublic void sequenceNumberAtShardEnd(ExtendedSequenceNumber extendedSequenceNumber)
extendedSequenceNumber
- Copyright © 2021. All rights reserved.