com.esri.arcgis.geodatabaseextensions
Interface ICadastralFabricLocks

All Superinterfaces:
Serializable
All Known Implementing Classes:
CadastralFabric, ICadastralFabricLocksProxy

public interface ICadastralFabricLocks
extends Serializable

Provides access to members that assign object locks for a cadastral job.

Remarks

In the enterprise, multi-user geodatabase environment, a specialized implementation for reconciling versions is in place for cadastral fabrics. The implementation uses two distinct parts for handling fabric class attributes on lines and parcels, on the one hand, and for handling coordinates and geometries for fabric classes on the other.

In the first part, the cadastral fabric provides a pessimistic-locking mechanism that prevents conflicts in the edits of parcel attributes, such as distance and bearing values on lines, or the parcel area name value, for example. This avoids the need to do conflict resolution on these attributes when reconciling versions in an enterprise SDE environment.

The second part of this implementation allows coordinates and geometries to be posted without conflicts, in a strategy of last-one-in-wins. This avoids the scenario of reconciling conflicts for vast numbers of points that have been changed in a least squares adjustment in two different versions. Note this does not apply to the attribute values on the lines and parcel fabric classes, these latter being handled under the aforementioned strategy of pessimistic locking.

All Cadastral jobs are defined by a set of Job parcels. Job Parcels can be flagged as Edit Parcels. In order to change the attributes of the line or parcel fabric classes, the associated parcels must be set as Edit parcels, giving them exclusive edits.

Soft locks refers to parcels that can be taken and used as an edit parcel in another job.

Soft locks are:

When using this interface you need to first set the LockingJob property. All other methods rely on this property being set and are applied to the job that is set by this property.

This interface manages the information held in the JobObjects table and in the Jobs table.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.


Method Summary
 void acquireLocks(ILongArray pLocks, boolean takeSoftLocks, ILongArray[] ppLocksInConflict, ILongArray[] ppSoftLocksInConflict)
          Acquire locks on the LockingJob.
 boolean lockJob()
          Lock current job.
 void releaseJobLock(boolean forceRelease)
          Release current job's lock.
 void setLockingJob(String rhs1)
          The name of the Job to apply locks on.
 void undoLastAcquiredLocks()
          Rolls back most recent set of acquired locks, until last edit operation.
 void validateJobLock(boolean[] locked, String[] lockingMachine, int[] lockingPID)
          Correct orphan job locks for current machine, and return current lock information.
 

Method Detail

setLockingJob

void setLockingJob(String rhs1)
                   throws IOException,
                          AutomationException
The name of the Job to apply locks on.

Remarks

The Cadastral Job on which all methods will be applied.

When using this interface you need to first set this property, before using any of the other methods.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
rhs1 - The rhs1 (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

acquireLocks

void acquireLocks(ILongArray pLocks,
                  boolean takeSoftLocks,
                  ILongArray[] ppLocksInConflict,
                  ILongArray[] ppSoftLocksInConflict)
                  throws IOException,
                         AutomationException
Acquire locks on the LockingJob. TakeSoftLocks allows locks to be transferred from other jobs in the same version.

Remarks

Add the given parcel ids as members of the current job.

The array of locks refer to the object ids of parcels in the parcel fabric class.

Soft locks refers to parcels that can be taken and used as an edit parcel in another job.

Soft locks are:

Set the parameter to True if you'd like to automatically get these locks for the current Job.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
pLocks - A reference to a com.esri.arcgis.system.ILongArray (in)
takeSoftLocks - The takeSoftLocks (in)
ppLocksInConflict - A reference to a com.esri.arcgis.system.ILongArray (out: use single element array)
ppSoftLocksInConflict - A reference to a com.esri.arcgis.system.ILongArray (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

undoLastAcquiredLocks

void undoLastAcquiredLocks()
                           throws IOException,
                                  AutomationException
Rolls back most recent set of acquired locks, until last edit operation. Only effective once.

Remarks

Undo the last set of locks acquired. This action is applied up until the last edit operation.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

lockJob

boolean lockJob()
                throws IOException,
                       AutomationException
Lock current job. An existing lock will cause failure.

Remarks

Enters the MachineName and ProcessID values into the Jobs table.

This method is usually the next call after setting the LockingJob. If the method returns FALSE, then the lock is already held by another machine or process id.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Returns:
The succeed
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

releaseJobLock

void releaseJobLock(boolean forceRelease)
                    throws IOException,
                           AutomationException
Release current job's lock.

Remarks

Removes the MachineName and ProcessID values out of the Jobs table.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
forceRelease - The forceRelease (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

validateJobLock

void validateJobLock(boolean[] locked,
                     String[] lockingMachine,
                     int[] lockingPID)
                     throws IOException,
                            AutomationException
Correct orphan job locks for current machine, and return current lock information.

Remarks

Validates the MachineName and ProcessID values in the Jobs table.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Parameters:
locked - The locked (out: use single element array)
lockingMachine - The lockingMachine (out: use single element array)
lockingPID - The lockingPID (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.