Table of Contents
This chapter discusses two different write operations: putting records into the store, and then deleting them.
There are three exceptions that you might be required to handle whenever you perform a write operation to the store. For simple cases where you use default policies, you can probably avoid explicitly handling these. However, as your code complexity increases, so too will the desirability of explicitly managing these exceptions.
The first of these is
DurabilityException
. This exception
indicates that the operation cannot be completed because the
durability policy cannot be met. For more information, see
Durability Guarantees.
The second is RequestTimeoutException
. This
simply means that the operation could not be completed within the
amount of time provided by the store's timeout property. This
probably indicates an overloaded system. Perhaps your network is
experiencing a slowdown, or your store's nodes are overloaded with
too many operations (especially write operations) coming in too
short of a period of time.
To handle a RequestTimeoutException
,
you could simply log the error and move on, or you could pause for
a short period of time and then retry the operation. You could
also retry the operation, but use a longer timeout value.
(There is a version of the KVStore.put()
method that allows you to specify a timeout value for that
specific operation.)
Finally, you can receive a general
FaultException
, which indicates that
some exception occurred which is neither a problem with
durability nor a problem with the request timeout. Your only
recourse here is to either log the error and move along, or
retry the operation.