NamedCacheAsyncExtensionsGetMetadataAsync Method (NamedCache, Byte, Boolean, LockTicket, CancellationToken)

ScaleOut Software NamedCache API
Asynchronously gets server metadata and user-defined index values for an object in the named cache. This extension method is simply a convenience wrapper for GetMetadataAsync(CachedObjectId, GetMetadataOptions, LockTicket, CancellationToken) that creates a CachedObjectId from id and interprets acquireLock setting GetMetadataOptions appropriately.

Namespace:  Soss.Client.Extensions
Assembly:  soss_namedcache (in soss_namedcache.dll) Version: 6.2.0.0
Syntax

public static Task<AsyncGetMetadataResult> GetMetadataAsync(
	this NamedCache cache,
	byte[] id,
	bool acquireLock,
	LockTicket lockTicket = null,
	CancellationToken cancellationToken = null
)

Parameters

cache
Type: Soss.ClientNamedCache
the NamedCache this extension method operates on.
id
Type: SystemByte
a byte that will be transformed into a CachedObjectId via CreateKey(Byte) which identifies the object in the cache.
acquireLock
Type: SystemBoolean
If true, indicates that the method should attempt to acquire a lock on the object when reading it from the server.
lockTicket (Optional)
Type: Soss.ClientLockTicket
An optional LockTicket obtained from a previous locking call
cancellationToken (Optional)
Type: System.ThreadingCancellationToken
An optional CancellationToken that can be used to cancel the asynchronous operation.

Return Value

Type: TaskAsyncGetMetadataResult
If the object identified by id is found in the cache, the object's NamedCacheObjectMetadata and any resulting LockTicket are returned. If the object is not found in the cache, null is returned.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type NamedCache. When you use instance method syntax to call this method, omit the first parameter. For more information, see Extension Methods (Visual Basic) or Extension Methods (C# Programming Guide).
Exceptions

ExceptionCondition
ObjectLockedExceptionThrown if the acquireLock parameter requests a lock but the associated object in the StateServer is locked by another client.
StateServerExceptionThrown if ScaleOut StateServer is unavailable or has experienced an internal error.
ReadThroughTimeoutExceptionThrown if GeoServer pull replication is used on this NamedCache and a remote read of an object is delayed beyond the number of retries specified by MaxReadThroughPendingAttempts.
Remarks

This method optionally locks the object in SOSS to prevent other clients from updating or removing the object. The UseLocking property is not taken into consideration by this method. If the acquireLock parameter requests a lock, this call will block until the lock is acquired or the MaxLockAttempts limit has been met (or the the asynchronous operation is cancelled via cancellationToken). The lock affects the entire object, not just its metadata, and can be released through a call to ReleaseLock(CachedObjectId), Update(CachedObjectId, Object, Boolean), Remove(CachedObjectId), SetMetadata(CachedObjectId, ObjectMetadata, Boolean), or their asynchronous equivalents. If no subsequent call is made, the lock will automatically expire after approximately 90 seconds. Re-locking an object that is already locked by the same instance of the NamedCache will refresh the lock by resetting the 90 second lock timeout.

If GeoServer pull replication is being used with this named cache, note that performing a locking retrieval of an object's metadata will cause GeoServer pull replication to move the master copy of the associated object into the local store.

See Also

Reference