Interface CacheTransaction

    • Method Detail

      • getGlobalTransaction

        GlobalTransaction getGlobalTransaction()
        Returns the transaction identifier.
      • getModifications

        List<org.infinispan.commands.write.WriteCommand> getModifications()
        Returns the modifications visible within the current transaction. Any modifications using Flag#CACHE_MODE_LOCAL are excluded. The returned list is never null.
      • getAllModifications

        List<org.infinispan.commands.write.WriteCommand> getAllModifications()
        Returns all the modifications visible within the current transaction, including those using Flag#CACHE_MODE_LOCAL. The returned list is never null.
      • hasModification

        boolean hasModification​(Class<?> modificationClass)
        Checks if a modification of the given class (or subclass) is present in this transaction. Any modifications using Flag#CACHE_MODE_LOCAL are ignored.
        modificationClass - the modification type to look for
        true if found, false otherwise
      • removeLookedUpEntry

        void removeLookedUpEntry​(Object key)
      • clearLookedUpEntries

        void clearLookedUpEntries()
      • ownsLock

        boolean ownsLock​(Object key)
      • clearLockedKeys

        void clearLockedKeys()
      • getTopologyId

        int getTopologyId()
      • addBackupLockForKey

        void addBackupLockForKey​(Object key)
      • waitForLockRelease

        boolean waitForLockRelease​(long lockAcquisitionTimeout)
                            throws InterruptedException
        Checks if this transaction holds a lock on the given key and then waits until the transaction completes or until the timeout expires and returns true if the transaction is complete or false otherwise. If the key is not locked or if the transaction is already completed it returns true immediately.

        This method is subject to spurious returns in a way similar to Object.wait(). It can sometimes return before the specified time has elapsed and without guaranteeing that this transaction is complete. The caller is responsible to call the method again if transaction completion was not reached and the time budget was not spent.

        See Also:
        AbstractTxLockingInterceptor.checkPendingAndLockKey(InvocationContext, Object, long)
      • containsLockOrBackupLock

        boolean containsLockOrBackupLock​(Object key)
      • areLocksReleased

        boolean areLocksReleased()
      • setUpdatedEntryVersions

        void setUpdatedEntryVersions​(EntryVersionsMap updatedEntryVersions)
      • isMarkedForRollback

        boolean isMarkedForRollback()
      • markForRollback

        void markForRollback​(boolean markForRollback)
      • addVersionRead

        void addVersionRead​(Object key,
                            EntryVersion version)
        Sets the version read for this key. The version is only set at the first time, i.e. multiple invocation of this method will not change the state.

        Note: used in Repeatable Read + Write Skew + Clustering + Versioning.

      • replaceVersionRead

        default void replaceVersionRead​(Object key,
                                        EntryVersion version)
        since 9.0
        Sets the version read fr this key, replacing the old version if it exists, i.e each invocation updates the version of the key. This method is used when a remote get is performed for the key.

        Note: used in Repeatable Read + Write Skew + Clustering + Versioning.

      • getVersionsRead

        EntryVersionsMap getVersionsRead()
        Note: used in Repeatable Read + Write Skew + Clustering + Versioning.
        a non-null map between key and version. The map represents the version read for that key. If no version exists, the key has not been read.
      • getCreationTime

        long getCreationTime()
      • freezeModifications

        void freezeModifications()
        Prevent new modifications after prepare or commit started.
      • getReleaseFutureForKey

        CompletableFuture<Void> getReleaseFutureForKey​(Object key)
        It returns a CompletableFuture that completes when the lock for the key is released. If the key is not locked by this transaction, it returns null.
        key - the key.
        the CompletableFuture or null if the key is not locked by this transaction.
      • cleanupBackupLocks

        void cleanupBackupLocks()
        It cleans up the backup locks for this transaction.
      • removeBackupLocks

        void removeBackupLocks​(Collection<?> keys)
        It cleans up the backup lock for the keys.
        keys - The keys to clean up the backup lock.
      • removeBackupLock

        void removeBackupLock​(Object key)
        It cleans up the backup for key.
        key - The key to clean up the backup lock.
      • forEachBackupLock

        void forEachBackupLock​(Consumer<Object> consumer)
        Invokes the Consumer with each backup lock.
        consumer - The backup lock Consumer