Package oracle.nosql.driver

## Class Durability

- java.lang.Object
- - oracle.nosql.driver.Durability

-     public class Durability
      extends Object

  Defines the durability characteristics associated with a standalone write (put or update) operation.

  This is currently only supported in On-Prem installations. It is ignored in the cloud service.

  The overall durability is a function of the `Durability.SyncPolicy` and `Durability.ReplicaAckPolicy` in effect for the Master, and the `Durability.SyncPolicy` in effect for each Replica.

  Since:
    5.3.0

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static class` | `Durability.ReplicaAckPolicy` | A replicated environment makes it possible to increase an application's transaction commit guarantees by committing changes to its replicas on the network.
    `static class` | `Durability.SyncPolicy` | Defines the synchronization policy to be used when committing a transaction.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static Durability` | `COMMIT_NO_SYNC` | A convenience constant that defines a durability policy with COMMIT_NO_SYNC for Master commit synchronization.
    `static Durability` | `COMMIT_SYNC` | A convenience constant that defines a durability policy with COMMIT_SYNC for Master commit synchronization.
    `static Durability` | `COMMIT_WRITE_NO_SYNC` | A convenience constant that defines a durability policy with COMMIT_WRITE_NO_SYNC for Master commit synchronization.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Durability​(Durability.SyncPolicy masterSync, Durability.SyncPolicy replicaSync, Durability.ReplicaAckPolicy replicaAck)` | Creates an instance of a Durability specification.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object obj)` |
    `Durability.SyncPolicy` | `getMasterSync()` | Returns the transaction synchronization policy to be used on the Master when committing a transaction.
    `Durability.ReplicaAckPolicy` | `getReplicaAck()` | Returns the replica acknowledgment policy used by the master when committing changes to a replicated environment.
    `Durability.SyncPolicy` | `getReplicaSync()` | Returns the transaction synchronization policy to be used by the replica as it replays a transaction that needs an acknowledgment.
    `int` | `hashCode()` |
    `String` | `toString()` |

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### COMMIT_SYNC

          public static final Durability COMMIT_SYNC

      A convenience constant that defines a durability policy with COMMIT_SYNC for Master commit synchronization. The policies default to COMMIT_NO_SYNC for commits of replicated transactions that need acknowledgment and SIMPLE_MAJORITY for the acknowledgment policy.

    - #### COMMIT_NO_SYNC

          public static final Durability COMMIT_NO_SYNC

      A convenience constant that defines a durability policy with COMMIT_NO_SYNC for Master commit synchronization. The policies default to COMMIT_NO_SYNC for commits of replicated transactions that need acknowledgment and SIMPLE_MAJORITY for the acknowledgment policy.

    - #### COMMIT_WRITE_NO_SYNC

          public static final Durability COMMIT_WRITE_NO_SYNC

      A convenience constant that defines a durability policy with COMMIT_WRITE_NO_SYNC for Master commit synchronization. The policies default to COMMIT_NO_SYNC for commits of replicated transactions that need acknowledgment and SIMPLE_MAJORITY for the acknowledgment policy.

  - ### Constructor Detail

    - #### Durability

          public Durability​(Durability.SyncPolicy masterSync,
                            Durability.SyncPolicy replicaSync,
                            Durability.ReplicaAckPolicy replicaAck)

      Creates an instance of a Durability specification.
      Parameters:
        `masterSync` - the SyncPolicy to be used when committing the transaction on the Master.
        `replicaSync` - the SyncPolicy to be used remotely, as part of a transaction acknowledgment, at a Replica node.
        `replicaAck` - the acknowledgment policy used when obtaining transaction acknowledgments from Replicas.

  - ### Method Detail

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### getMasterSync

          public Durability.SyncPolicy getMasterSync()

      Returns the transaction synchronization policy to be used on the Master when committing a transaction.
      Returns:
        the master transaction synchronization policy

    - #### getReplicaSync

          public Durability.SyncPolicy getReplicaSync()

      Returns the transaction synchronization policy to be used by the replica as it replays a transaction that needs an acknowledgment.
      Returns:
        the replica transaction synchronization policy

    - #### getReplicaAck

          public Durability.ReplicaAckPolicy getReplicaAck()

      Returns the replica acknowledgment policy used by the master when committing changes to a replicated environment.
      Returns:
        the replica acknowledgment policy

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### equals

          public boolean equals​(Object obj)

      Overrides:
        `equals` in class `Object`