ObjectReferenceTracker Class


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

public ref class ObjectReferenceTracker sealed : Microsoft::SqlServer::Dts::Runtime::DtsObject
public sealed class ObjectReferenceTracker : Microsoft.SqlServer.Dts.Runtime.DtsObject
type ObjectReferenceTracker = class
    inherit DtsObject
Public NotInheritable Class ObjectReferenceTracker
Inherits DtsObject


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.


AddReference(String, DTSObjectReferenceType, Int32)

This method adds a reference to a list for reference tracking.


This method destroys the specified reference list from reference tracking.


Determines whether two object instances are equal.

(Inherited from DtsObject)

Returns the hash code for this instance.

(Inherited from DtsObject)
RemoveReference(String, DTSObjectReferenceType, Int32)

Removes a reference from an existing list.

SetListInfo(Int32, String, String)

This method allows you to provide metadata for an existing reference list.

Applies to