FeatureServiceSessionType enum
An enumeration of the session types that control how multiple users access branch versioned data.
Session types—transient and persistent—let you control how multiple viewers and editors access branch versioned feature services. By default, a web map or web scene with branch versioned feature services (a ServiceGeodatabase version) loads as a FeatureServiceSessionType.transient type; you can change this type to FeatureServiceSessionType.persistent at the map or scene level when you load the map or scene.
When you switch the ServiceGeodatabase version being used via ServiceGeodatabase.switchVersion, a read operation is started on the new version before releasing the previous version. If acquiring a shared lock on the new version fails (for example, if another user is editing the version), an error is raised. This behavior allows you to keep the user connected to the original version when the version they want is not yet available.
For descriptions of additional ways to manage multiple viewers and editors in branch versioned data, such as using multiple tiers of editors, see the ArcGIS Pro discussion on branch version scenarios.
Constructors
- FeatureServiceSessionType()
-
const
Values
- transient → const FeatureServiceSessionType
-
A momentary session is used during queries and edit operations.
This is the default session type. The server creates an exclusive lock upon an editor's ServiceGeodatabase.applyEdits operation and holds the lock only for the duration that it takes that operation to occur. An exclusive lock prevents readers and editors from accessing (connecting to and viewing) the rows affected by the edit in the ServiceGeodatabase version during this time, but they can access (connect to, view, query, and edit) other rows in the ServiceGeodatabase version. Use the transient type when concurrency is more important than data consistency between queries or between concurrent users.
- persistent → const FeatureServiceSessionType
-
A session is held open as long as tables are actively reading or writing.
-
With a Read operation— When a user starts a read operation, a shared lock is placed on the ServiceGeodatabase version at the beginning of the read operation. A shared lock allows multiple users using read operations to access the service feature table at the same time. The shared lock is kept until ServiceGeodatabase.close or ServiceGeodatabase.switchVersion methods are called. If the ServiceFeatureTable is in FeatureRequestMode.manualCache, you can call ServiceFeatureTable.clearCache to end a read session.
-
With an Edit operation— When a user starts an edit operation in the list below, an exclusive lock is placed on the affected ServiceFeatureTable at the beginning of the edit operation. An exclusive lock prevents all other users from connecting to the version. They cannot view, query, or edit that version.
The lock is held until one of the following methods is called:
- ServiceFeatureTable.undoLocalEdits
- ServiceGeodatabase.undoLocalEdits
- ServiceFeatureTable.applyEdits
- ServiceGeodatabase.applyEdits
If one or more read operations were already being performed on the ServiceFeatureTable when an edit operation began (if a shared lock was already in place), then the shared lock becomes an exclusive lock. When all edit operations are applied successfully, the exclusive lock returns to being a shared lock.
A call to ServiceGeodatabase.close will release an exclusive lock.
Note that if the ServiceGeodatabase version requested is the default version, no exclusive lock will be acquired.
Edit operations that trigger the locks described above:
-
Properties
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
-
values
→ const List<
FeatureServiceSessionType> - A constant List of the values in this enum, in order of their declaration.