public class InsufficientAcksException extends OperationFailureException
This exception is thrown at the time of a commit in a Master, if the Master
could not obtain transaction commit acknowledgments from its Replicas in
accordance with the Durability.ReplicaAckPolicy
currently in effect. This
exception will never be thrown when the ReplicaAckPolicy of NONE is in
effect.
Note that a InsufficientAcksException does not indicate there was a failure to commit the transaction on the master. The transaction has in fact been successfully committed on the master at the time of the exception.
The application can handle the exception and use it to take some form of administrative action. For example, it may log messages to have the operations staff look into the health of the replicas or the network. Or it may decide to increase the durability of the transaction on the Master by ensuring that the changes are flushed to the operating system's buffers or to the disk itself.
The application may additionally choose to continue to create new transactions, which may succeed or fail depending on whether the underlying problems have been resolved.
Durability
,
Serialized FormConstructor and Description |
---|
InsufficientAcksException(MasterTxn txn,
int acksPending,
int ackTimeoutMs,
java.lang.String feederState) |
Modifier and Type | Method and Description |
---|---|
int |
acksPending()
It returns the number of Replicas that did not respond with an
acknowledgment within the Replica commit timeout period.
|
int |
acksRequired()
It returns the number of acknowledgments required by the commit policy.
|
int |
ackTimeout()
Returns the acknowledgment timeout that was in effect at the time of the
exception.
|
OperationFailureException |
wrapSelf(java.lang.String msg)
For internal use only.
|
addErrorMessage, getMessage, getVersionHeader
public InsufficientAcksException(MasterTxn txn, int acksPending, int ackTimeoutMs, java.lang.String feederState)
acksPending
- the number of missing acknowledgmentsackTimeoutMs
- the current acknowledgment timeout value in
millisecondspublic OperationFailureException wrapSelf(java.lang.String msg)
wrapSelf
in class OperationFailureException
public int acksPending()
public int acksRequired()
public int ackTimeout()
Copyright (c) 2004-2012 Oracle. All rights reserved.