public class WriteConcern extends Object implements Serializable
WriteConcern control the acknowledgment of write operations with various options.
w
Other options:
Modifier and Type | Class and Description |
---|---|
static class |
WriteConcern.Majority |
Modifier and Type | Field and Description |
---|---|
static WriteConcern |
ACKNOWLEDGED
Write operations that use this write concern will wait for acknowledgement from the primary server before returning.
|
static WriteConcern |
ERRORS_IGNORED
No exceptions are raised, even for network issues.
|
static WriteConcern |
FSYNC_SAFE
Exceptions are raised for network issues, and server errors; the write operation waits for the server to flush
the data to disk.
|
static WriteConcern |
FSYNCED
Exceptions are raised for network issues, and server errors; the write operation waits for the server to flush
the data to disk.
|
static WriteConcern |
JOURNAL_SAFE
Exceptions are raised for network issues, and server errors; the write operation waits for the server to
group commit to the journal file on disk.
|
static WriteConcern |
JOURNALED
Exceptions are raised for network issues, and server errors; the write operation waits for the server to
group commit to the journal file on disk.
|
static WriteConcern |
MAJORITY
Exceptions are raised for network issues, and server errors; waits on a majority of servers for the write operation.
|
static WriteConcern |
NONE
No exceptions are raised, even for network issues.
|
static WriteConcern |
NORMAL
Write operations that use this write concern will return as soon as the message is written to the socket.
|
static WriteConcern |
REPLICA_ACKNOWLEDGED
Exceptions are raised for network issues, and server errors; waits for at least 2 servers for the write operation.
|
static WriteConcern |
REPLICAS_SAFE
Exceptions are raised for network issues, and server errors; waits for at least 2 servers for the write operation.
|
static WriteConcern |
SAFE
Write operations that use this write concern will wait for acknowledgement from the primary server before returning.
|
static WriteConcern |
UNACKNOWLEDGED
Write operations that use this write concern will return as soon as the message is written to the socket.
|
Constructor and Description |
---|
WriteConcern()
Default constructor keeping all options as default.
|
WriteConcern(boolean fsync)
Calls
WriteConcern(int, int, boolean) with w=1 and wtimeout=0 |
WriteConcern(int w)
Calls
WriteConcern(int, int, boolean) with wtimeout=0 and fsync=false |
WriteConcern(int w,
int wtimeout)
Calls
WriteConcern(int, int, boolean) with fsync=false |
WriteConcern(int w,
int wtimeout,
boolean fsync)
Creates a WriteConcern object.
|
WriteConcern(int w,
int wtimeout,
boolean fsync,
boolean j)
Creates a WriteConcern object.
|
WriteConcern(int w,
int wtimeout,
boolean fsync,
boolean j,
boolean continueOnInsertError)
Creates a WriteConcern object.
|
WriteConcern(String w)
Tag based Write Concern with wtimeout=0, fsync=false, and j=false
|
WriteConcern(String w,
int wtimeout,
boolean fsync,
boolean j)
Creates a WriteConcern object.
|
WriteConcern(String w,
int wtimeout,
boolean fsync,
boolean j,
boolean continueOnInsertError)
Creates a WriteConcern object.
|
Modifier and Type | Method and Description |
---|---|
boolean |
callGetLastError()
Returns whether "getlasterror" should be called (w > 0)
|
WriteConcern |
continueOnErrorForInsert(boolean continueOnErrorForInsert)
Toggles the "continue inserts on error" mode.
|
boolean |
equals(Object o) |
boolean |
fsync()
Gets the fsync flag (fsync to disk on the server)
|
BasicDBObject |
getCommand()
Gets the getlasterror command for this write concern.
|
boolean |
getContinueOnErrorForInsert()
Gets the "continue inserts on error" mode
|
boolean |
getFsync()
Gets the fsync flag (fsync to disk on the server)
|
boolean |
getJ()
Gets the j parameter (journal syncing)
|
int |
getW()
Gets the w parameter (the write strategy)
|
Object |
getWObject()
Gets the w value (the write strategy)
|
String |
getWString()
Gets the w parameter (the write strategy) in String format
|
int |
getWtimeout()
Gets the write timeout (in milliseconds)
|
int |
hashCode() |
static WriteConcern.Majority |
majorityWriteConcern(int wtimeout,
boolean fsync,
boolean j)
Create a Majority Write Concern that requires a majority of
servers to acknowledge the write.
|
boolean |
raiseNetworkErrors()
Returns whether network error may be raised (w >= 0)
|
void |
setWObject(Object w)
Sets the w value (the write strategy)
|
String |
toString() |
static WriteConcern |
valueOf(String name)
Gets the WriteConcern constants by name: NONE, NORMAL, SAFE, FSYNC_SAFE,
REPLICA_SAFE.
|
public static final WriteConcern ERRORS_IGNORED
public static final WriteConcern ACKNOWLEDGED
public static final WriteConcern UNACKNOWLEDGED
public static final WriteConcern FSYNCED
public static final WriteConcern JOURNALED
public static final WriteConcern REPLICA_ACKNOWLEDGED
public static final WriteConcern NONE
This field has been superseded by WriteConcern.ERRORS_IGNORED
, and may be deprecated in a future release.
ERRORS_IGNORED
public static final WriteConcern NORMAL
This field has been superseded by WriteConcern.UNACKNOWLEDGED
, and may be deprecated in a future release.
UNACKNOWLEDGED
public static final WriteConcern SAFE
This field has been superseded by WriteConcern.ACKNOWLEDGED
, and may be deprecated in a future release.
ACKNOWLEDGED
public static final WriteConcern MAJORITY
public static final WriteConcern FSYNC_SAFE
This field has been superseded by WriteConcern.FSYNCED
, and may be deprecated in a future release.
FSYNCED
public static final WriteConcern JOURNAL_SAFE
This field has been superseded by WriteConcern.JOURNALED
, and may be deprecated in a future release.
JOURNALED
public static final WriteConcern REPLICAS_SAFE
This field has been superseded by WriteConcern.REPLICA_ACKNOWLEDGED
, and may be deprecated in a future release.
REPLICA_ACKNOWLEDGED
public WriteConcern()
WriteConcern.UNACKNOWLEDGED
, so writes may be lost without any errors being reported.UNACKNOWLEDGED
public WriteConcern(int w)
WriteConcern(int, int, boolean)
with wtimeout=0 and fsync=falsew
- number of writespublic WriteConcern(String w)
w
- Write Concern tagpublic WriteConcern(int w, int wtimeout)
WriteConcern(int, int, boolean)
with fsync=falsew
- number of writeswtimeout
- timeout for write operationpublic WriteConcern(boolean fsync)
WriteConcern(int, int, boolean)
with w=1 and wtimeout=0fsync
- whether or not to fsyncpublic WriteConcern(int w, int wtimeout, boolean fsync)
Specifies the number of servers to wait for on the write operation, and exception raising behavior
w represents the number of servers:
w=-1
None, no checking is donew=0
None, network socket errors raisedw=1
Checks server for errors as well as network socket errors raisedw>1
Checks servers (w) for errors as well as network socket errors raisedw
- number of writeswtimeout
- timeout for write operationfsync
- whether or not to fsyncpublic WriteConcern(int w, int wtimeout, boolean fsync, boolean j)
Specifies the number of servers to wait for on the write operation, and exception raising behavior
w represents the number of servers:
w=-1
None, no checking is donew=0
None, network socket errors raisedw=1
Checks server for errors as well as network socket errors raisedw>1
Checks servers (w) for errors as well as network socket errors raisedw
- number of writeswtimeout
- timeout for write operationfsync
- whether or not to fsyncj
- whether writes should wait for a journaling group commitpublic WriteConcern(int w, int wtimeout, boolean fsync, boolean j, boolean continueOnInsertError)
Specifies the number of servers to wait for on the write operation, and exception raising behavior
w represents the number of servers:
w=-1
None, no checking is donew=0
None, network socket errors raisedw=1
Checks server for errors as well as network socket errors raisedw>1
Checks servers (w) for errors as well as network socket errors raisedw
- number of writeswtimeout
- timeout for write operationfsync
- whether or not to fsyncj
- whether writes should wait for a journaling group commitcontinueOnInsertError
- if batch inserts should continue after the first errorpublic WriteConcern(String w, int wtimeout, boolean fsync, boolean j)
Specifies the number of servers to wait for on the write operation, and exception raising behavior
w represents the number of servers:
w=-1
None, no checking is donew=0
None, network socket errors raisedw=1
Checks server for errors as well as network socket errors raisedw>1
Checks servers (w) for errors as well as network socket errors raisedw
- number of writeswtimeout
- timeout for write operationfsync
- whether or not to fsyncj
- whether writes should wait for a journaling group commitpublic WriteConcern(String w, int wtimeout, boolean fsync, boolean j, boolean continueOnInsertError)
Specifies the number of servers to wait for on the write operation, and exception raising behavior
w represents the number of servers:
w=-1
None, no checking is donew=0
None, network socket errors raisedw=1
Checks server for errors as well as network socket errors raisedw>1
Checks servers (w) for errors as well as network socket errors raisedw
- number of writeswtimeout
- timeout for write operationfsync
- whether or not to fsyncj
- whether writes should wait for a journaling group commitcontinueOnInsertError
- if batch inserts should continue after the first errorpublic BasicDBObject getCommand()
w <= 0
public void setWObject(Object w)
w
- public Object getWObject()
public int getW()
public String getWString()
public int getWtimeout()
public boolean getFsync()
public boolean fsync()
public boolean raiseNetworkErrors()
public boolean callGetLastError()
public static WriteConcern valueOf(String name)
name
- public boolean getJ()
public WriteConcern continueOnErrorForInsert(boolean continueOnErrorForInsert)
continueOnErrorForInsert
- public boolean getContinueOnErrorForInsert()
public static WriteConcern.Majority majorityWriteConcern(int wtimeout, boolean fsync, boolean j)
wtimeout
- timeout for write operationfsync
- whether or not to fsyncj
- whether writes should wait for a journaling group commit