|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
Web connections are inherently stateless. Unfortunately, this means that the semantics of serializable transactions are not preserved. To understand the issue consider an UPDATE operation.
The client fetches a feature instance. The feature is then modified on the client side, and submitted back to the database, via a Transaction request for update. Serializability is lost since there is nothing to guarantee that while the feature was being modified on the client side, another client did not come along and update that same feature in the database.
One way to ensure serializability is to require that access to data be done in a mutually exclusive manner; that is while one transaction accesses a data item, no other transaction can modify the same data item. This can be accomplished by using locks that control access to the data.
The purpose of the LockFeature interface is to expose a long term feature locking mechanism to ensure consistency. The lock is considered long term because network latency would make feature locks last relatively longer than native commercial database locks.
The LockFeature interface is optional and need only be implemented if the underlying datastore supports (or can be made to support) data locking. In addition, the implementation of locking is completely opaque to the client.
--------------------------------------------------------
Method Summary | |
int |
getExpiry()
The |
WFSLock[] |
getLocks()
A LockFeature request can be used to acquire a lock on a single feature or a set of features defined using the |
Methods inherited from interface org.deegree.services.wfs.protocol.WFSBasicRequest |
getNative |
Methods inherited from interface org.deegree.services.OGCWebServiceRequest |
getId, getRequest, getRequestParameter, getService, getVendorSpecificParameter, getVendorSpecificParameters, getVersion |
Method Detail |
public int getExpiry()
public WFSLock[] getLocks()
A LockFeature request can be used to acquire a lock on a single feature or a set of
features defined using the If a filter is not specified, then the optional typeName attribute can be used to specify
that all feature instances of a particular feature type should be locked.
The optional lockAction attribute is used to control how feature locks are acquired. A
lock action of ALL indicates that the web feature server should try to acquire a lock on
all requested features; if all features cannot be locked then the operation should fail. If
the lock action is set to SOME, then the web feature server tries to lock as many of the
requested features as it can. The default lock action shall be ALL.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |