Share via


ObjectReferenceTracker Class

Provides analysis regarding the impact and consequences of deleting variables and connections from a package. This class cannot be inherited.

Inheritance Hierarchy

System.Object
  Microsoft.SqlServer.Dts.Runtime.DtsObject
    Microsoft.SqlServer.Dts.Runtime.ObjectReferenceTracker

Namespace:  Microsoft.SqlServer.Dts.Runtime
Assembly:  Microsoft.SqlServer.ManagedDTS (in Microsoft.SqlServer.ManagedDTS.dll)

Syntax

'Declaration
Public NotInheritable Class ObjectReferenceTracker _
    Inherits DtsObject
'Usage
Dim instance As ObjectReferenceTracker
public sealed class ObjectReferenceTracker : DtsObject
public ref class ObjectReferenceTracker sealed : public DtsObject
[<SealedAttribute>]
type ObjectReferenceTracker =  
    class
        inherit DtsObject
    end
public final class ObjectReferenceTracker extends DtsObject

The ObjectReferenceTracker type exposes the following members.

Methods

  Name Description
Public method AddReference This method adds a reference to a list for reference tracking.
Public method DestroyList This method destroys the specified reference list from reference tracking.
Public method Equals Determines whether two object instances are equal. (Inherited from DtsObject.)
Protected method Finalize (Inherited from Object.)
Public method GetHashCode Returns the hash code for this instance. (Inherited from DtsObject.)
Public method GetType (Inherited from Object.)
Protected method MemberwiseClone (Inherited from Object.)
Public method RemoveReference Removes a reference from an existing list.
Public method SetListInfo This method allows you to provide metadata for an existing reference list.
Public method ToString (Inherited from Object.)

Top

Remarks

The ObjectReferenceTracker is a mechanism for viewing impact analysis. You register the objects that your components are using and where they are found. If another user or component attempts to delete an object, the system can provide information allowing you to verify that the object is not in use elsewhere, and if it is used elsewhere, display the information to you. When you add or delete a reference to a variable from a component or package, you have to update the lists of variable reference.

Currently, the types of objects supported by the reference tracker are listed in the DTSObjectReferenceType enumeration.

A runtime task or pipeline component that uses variables or collections uses the AddReference method to create a reference list of objects. You also need to provide a usage location and description for the list by calling SetListInfo. For example, a task with a single variable would use its name as the location information, and a description of what the variable is used for as the usage description.

Tasks or components that make different uses of variables or connections may create as many separate reference lists as necessary. For example, the Conditional Split component uses variables in expressions on outputs, and you can create a separate reference list for each output expression that uses variables. You set the component name as the usage location and include the expression and where it is found in the description. If the same variable is used in multiple expressions, each usage location will be tracked by the system.

There are separate DTSObjectReferenceType enumerations for read-only variables and read/write variables. Using this specification, in conjunction with variable locking with the VariableDispenser class, can provide information that is useful when resolving deadlock issues.

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.