Interface DOMDataTreeReadTransaction

  • All Superinterfaces:
    AutoCloseable, DOMDataTreeReadOperations, DOMDataTreeTransaction, org.opendaylight.yangtools.concepts.Identifiable<Object>, org.opendaylight.yangtools.concepts.Registration
    All Known Implementing Classes:
    ForwardingDOMDataReadOnlyTransaction, ShardedDOMReadTransactionAdapter, TransactionChainReadTransaction

    public interface DOMDataTreeReadTransaction
    extends DOMDataTreeTransaction, DOMDataTreeReadOperations, org.opendaylight.yangtools.concepts.Registration
    A transaction that provides read access to a logical data store.

    View of the data tree is a stable point-in-time snapshot of the current data tree state when the transaction was created. It's state and underlying data tree is not affected by other concurrently running transactions.

    Implementation Note: This interface is not intended to be implemented by users of MD-SAL, but only to be consumed by them.

    Transaction isolation example

    Lets assume initial state of data tree for PATH is A. txRead = broker.newReadOnlyTransaction(); // read Transaction is snapshot of data txWrite = broker.newReadWriteTransactoin(); // concurrent write transaction txRead.read(OPERATIONAL, PATH).get(); // will return Optional containing A txWrite = broker.put(OPERATIONAL, PATH, B); // writes B to PATH txRead.read(OPERATIONAL, PATH).get(); // still returns Optional containing A txWrite.submit().get(); // data tree is updated, PATH contains B txRead.read(OPERATIONAL, PATH).get(); // still returns Optional containing A txAfterCommit = broker.newReadOnlyTransaction(); // read Transaction is snapshot of new state txAfterCommit.read(OPERATIONAL, PATH).get(); // returns Optional containing B;

    Note: example contains blocking calls on future only to illustrate that action happened after other asynchronous action. Use of blocking call AbstractFuture.get() is discouraged for most uses and you should use FluentFuture.addCallback(com.google.common.util.concurrent.FutureCallback, java.util.concurrent.Executor) or other functions from Futures to register more specific listeners.

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void close()
      Closes this transaction and releases all resources associated with it.
      • Methods inherited from interface org.opendaylight.yangtools.concepts.Identifiable

        getIdentifier
    • Method Detail

      • close

        void close()
        Closes this transaction and releases all resources associated with it.
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface org.opendaylight.yangtools.concepts.Registration