Class WriteMultipleRequest
- java.lang.Object
-
- oracle.nosql.driver.ops.Request
-
- oracle.nosql.driver.ops.DurableRequest
-
- oracle.nosql.driver.ops.WriteMultipleRequest
-
public class WriteMultipleRequest extends DurableRequest
Represents the input to aNoSQLHandle.writeMultiple(oracle.nosql.driver.ops.WriteMultipleRequest)
operation. This request can be used to perform a sequence ofPutRequest
orDeleteRequest
operations associated with a table that share the same shard key portion of their primary keys, the WriteMultiple operation as whole is atomic. It is an efficient way to atomically modify multiple related rows.On a successful operation
WriteMultipleResult.getSuccess()
returns true. The execution result of each operations can be retrieved usingWriteMultipleResult.getResults()
.If the WriteMultiple operation is aborted because of the failure of an operation with abortIfUnsuccessful set to true, then
WriteMultipleResult.getSuccess()
return false, the index of failed operation can be accessed usingWriteMultipleResult.getFailedOperationIndex()
, and the execution result of failed operation can be accessed usingWriteMultipleResult.getFailedOperationResult()
.
-
-
Constructor Summary
Constructors Constructor Description WriteMultipleRequest()
Constructs an empty request
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description WriteMultipleRequest
add(Request request, boolean abortIfUnsuccessful)
Adds a Request to the operation list.void
clear()
Removes all of the operations from the WriteMultiple request.int
getNumOperations()
Returns the number of Requests.Request
getRequest(int index)
Returns the Request at the given position, it may be either aPutRequest
or aDeleteRequest
object.int
getTimeout()
Returns the timeout to use for the operation, in milliseconds.String
getTypeName()
Returns the type name of the request.WriteMultipleRequest
setCompartment(String compartment)
Cloud service only.WriteMultipleRequest
setDurability(Durability durability)
Sets the durability to use for the operation.WriteMultipleRequest
setTimeout(int timeoutMs)
Sets the request timeout value, in milliseconds.-
Methods inherited from class oracle.nosql.driver.ops.DurableRequest
getDurability
-
Methods inherited from class oracle.nosql.driver.ops.Request
getCompartment, getRateLimitDelayedMs, getReadRateLimiter, getRetryStats, getTableName, getWriteRateLimiter, setRateLimitDelayedMs, setReadRateLimiter, setWriteRateLimiter
-
-
-
-
Method Detail
-
add
public WriteMultipleRequest add(Request request, boolean abortIfUnsuccessful)
Adds a Request to the operation list.- Parameters:
request
- the Request to add, eitherPutRequest
orDeleteRequest
.abortIfUnsuccessful
- is true if this operation should cause the entire WriteMultiple operation to abort when this operation fails.- Returns:
- this
- Throws:
BatchOperationNumberLimitException
- if the number of requests exceeds the limit, or IllegalArgumentException if the request is neither aPutRequest
orDeleteRequest
. or any invalid state of the Request.
-
setCompartment
public WriteMultipleRequest setCompartment(String compartment)
Cloud service only.Sets the name or id of a compartment to be used for this operation.
The compartment may be specified as either a name (or path for nested compartments) or as an id (OCID). A name (vs id) can only be used when authenticated using a specific user identity. It is not available if authenticated as an Instance Principal which can be done when calling the service from a compute instance in the Oracle Cloud Infrastructure. See
SignatureProvider.createWithInstancePrincipal()
- Parameters:
compartment
- the name or id. If using a nested compartment, specify the full compartment pathcompartmentA.compartmentB
, but exclude the name of the root compartment (tenant).- Returns:
- this
-
getTimeout
public int getTimeout()
Returns the timeout to use for the operation, in milliseconds. A value of 0 indicates that the timeout has not been set.- Returns:
- the value
-
getNumOperations
public int getNumOperations()
Returns the number of Requests.- Returns:
- the number of Requests
-
getRequest
public Request getRequest(int index)
Returns the Request at the given position, it may be either aPutRequest
or aDeleteRequest
object.- Parameters:
index
- the position of Request to get- Returns:
- the Request at the given position
- Throws:
IndexOutOfBoundsException
- if the position is negative or greater or equal to the number of Requests.
-
setTimeout
public WriteMultipleRequest setTimeout(int timeoutMs)
Sets the request timeout value, in milliseconds. This overrides any default value set inNoSQLHandleConfig
. The value must be positive.- Parameters:
timeoutMs
- the timeout value, in milliseconds- Returns:
- this
- Throws:
IllegalArgumentException
- if the timeout value is less than or equal to 0
-
clear
public void clear()
Removes all of the operations from the WriteMultiple request.
-
setDurability
public WriteMultipleRequest setDurability(Durability durability)
Sets the durability to use for the operation. on-prem only.- Parameters:
durability
- the durability value. Set to null for the default durability setting on the kvstore server.- Returns:
- this
- Since:
- 5.3.0
-
getTypeName
public String getTypeName()
Description copied from class:Request
Returns the type name of the request. This is used for stats.- Specified by:
getTypeName
in classRequest
- Returns:
- the type name of the request
-
-