ReplicationServer.EnumBusinessLogicHandlers ReplicationServer.EnumBusinessLogicHandlers ReplicationServer.EnumBusinessLogicHandlers Method

Definition

Returns the business logic handlers registered at the server.

public:
 System::Collections::ArrayList ^ EnumBusinessLogicHandlers();
public System.Collections.ArrayList EnumBusinessLogicHandlers ();
Public Function EnumBusinessLogicHandlers () As ArrayList
Returns

Examples

// Specify the Distributor name and business logic properties.
string distributorName = publisherInstance;
string assemblyName = @"C:\Program Files\Microsoft SQL Server\110\COM\CustomLogic.dll";
string className = "Microsoft.Samples.SqlServer.BusinessLogicHandler.OrderEntryBusinessLogicHandler";
string friendlyName = "OrderEntryLogic";

ReplicationServer distributor;
BusinessLogicHandler customLogic;

	// Create a connection to the Distributor.
ServerConnection distributorConn = new ServerConnection(distributorName);

try
{
	// Connect to the Distributor.
	distributorConn.Connect();

	// Set the Distributor properties.
	distributor = new ReplicationServer(distributorConn);

	// Set the business logic handler properties.
	customLogic = new BusinessLogicHandler();
	customLogic.DotNetAssemblyName = assemblyName;
	customLogic.DotNetClassName = className;
	customLogic.FriendlyName = friendlyName;
	customLogic.IsDotNetAssembly = true;

	Boolean isRegistered = false;

	// Check if the business logic handler is already registered at the Distributor.
	foreach (BusinessLogicHandler registeredLogic
		in distributor.EnumBusinessLogicHandlers())
	{
		if (registeredLogic == customLogic)
		{
			isRegistered = true;
		}
	}

	// Register the custom logic.
	if (!isRegistered)
	{
		distributor.RegisterBusinessLogicHandler(customLogic);
	}
}
catch (Exception ex)
{
	// Do error handling here.
	throw new ApplicationException(string.Format(
		"The {0} assembly could not be registered.",
		assemblyName), ex);
}
finally
{
	distributorConn.Disconnect();
}
' Specify the Distributor name and business logic properties.
Dim distributorName As String = publisherInstance
Dim assemblyName As String = "C:\Program Files\Microsoft SQL Server\110\COM\CustomLogic.dll"
Dim className As String = "Microsoft.Samples.SqlServer.BusinessLogicHandler.OrderEntryBusinessLogicHandler"
Dim friendlyName As String = "OrderEntryLogic"

Dim distributor As ReplicationServer
Dim customLogic As BusinessLogicHandler

' Create a connection to the Distributor.
Dim distributorConn As ServerConnection = New ServerConnection(distributorName)

Try
    ' Connect to the Distributor.
    distributorConn.Connect()

    ' Set the Distributor properties.
    distributor = New ReplicationServer(distributorConn)

    ' Set the business logic handler properties.
    customLogic = New BusinessLogicHandler()
    customLogic.DotNetAssemblyName = assemblyName
    customLogic.DotNetClassName = className
    customLogic.FriendlyName = friendlyName
    customLogic.IsDotNetAssembly = True

    Dim isRegistered As Boolean = False

    ' Check if the business logic handler is already registered at the Distributor.
    For Each registeredLogic As BusinessLogicHandler _
    In distributor.EnumBusinessLogicHandlers
        If registeredLogic Is customLogic Then
            isRegistered = True
        End If
    Next

    ' Register the custom logic.
    If Not isRegistered Then
        distributor.RegisterBusinessLogicHandler(customLogic)
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException(String.Format( _
     "The {0} assembly could not be registered.", _
     assemblyName), ex)
Finally
    distributorConn.Disconnect()
End Try

Remarks

The EnumBusinessLogicHandlers method can only be called by members of the sysadmin fixed server role and members of the db_owner fixed database role.

Calling EnumBusinessLogicHandlers is equivalent to executing sp_enumcustomresolvers (Transact-SQL).

Applies to

See Also