Implementar extremos
Un extremo es un servicio que puede escuchar originalmente las solicitudes. SMO admite varios tipos de extremos utilizando el objeto Endpoint. Puede crear un servicio de extremos que administre un tipo específico de carga útil, que utiliza un protocolo concreto, creando una instancia de un objeto Endpoint y estableciendo sus propiedades.
La propiedad EndpointType del objeto Endpoint puede utilizarse para especificar los siguientes tipos de carga:
Creación de reflejo de base de datos
SOAP
Service Broker
Transact-SQL
Asimismo, la propiedad ProtocolType puede utilizarse para especificar los dos siguientes protocolos compatibles:
Protocolo HTTP
Protocolo TCP
Si ha especificado el tipo de carga útil, la carga útil real se puede establecer utilizando la propiedad de objeto Payload. La propiedad de objeto Payload proporciona una referencia a un objeto de carga útil del tipo especificado, para el que se pueden modificar las propiedades.
Para el objeto DatabaseMirroringPayload, debe especificar la función de creación de reflejo y si el cifrado está habilitado. El objeto ServiceBrokerPayload requiere información sobre el reenvío de mensajes, el número máximo de conexiones permitido y el modo de autenticación. El objeto SoapPayloadMethod exige establecer varias propiedades incluida la propiedad de objeto Add, que especifica los métodos de carga útil de SOAP disponibles para los clientes (procedimientos almacenados y funciones definidas por el usuario).
De igual forma, el protocolo actual se puede establecer utilizando la propiedad de objeto Protocol que hace referencia a un objeto de protocolo del tipo especificado por propiedad ProtocolType. El objeto HttpProtocol requiere una lista de direcciones IP restringidas y la información sobre el puerto, sitio web y autenticación. El objeto TcpProtocol también requiere una lista de direcciones IP restringidas e información de puerto.
Si se ha creado el extremo y se ha definido totalmente, se puede conceder, revocar y denegar el acceso a los usuarios de la base de datos, grupos, funciones e inicio de sesión.
Ejemplo
Para el siguiente ejemplo de código, deberá seleccionar el entorno de programación, la plantilla de programación y el lenguaje de programación en los que crear su aplicación. Para obtener más información, vea Cómo crear un proyecto de Visual Basic SMO en Visual Studio .NET y Cómo crear un proyecto de Visual C# SMO en Visual Studio .NET.
Crear un servicio de extremo de creación de reflejo de base de datos en Visual Basic
En el ejemplo de código se muestra cómo crear un extremo de creación de reflejo de base de datos en SMO. Esto es necesario antes de crear un espejo de la base de datos. Utilice IsMirroringEnabled y otras propiedades en el objeto Database para crear un reflejo de la base de datos.
'Set up a database mirroring endpoint on the server before setting up a database mirror.
'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Define an Endpoint object variable for database mirroring.
Dim ep As Endpoint
ep = New Endpoint(srv, "Mirroring_Endpoint")
ep.ProtocolType = ProtocolType.Tcp
ep.EndpointType = EndpointType.DatabaseMirroring
'Specify the protocol ports.
ep.Protocol.Http.SslPort = 5024
ep.Protocol.Tcp.ListenerPort = 6666
'Specify the role of the payload.
ep.Payload.DatabaseMirroring.ServerMirroringRole = ServerMirroringRole.All
'Create the endpoint on the instance of SQL Server.
ep.Create()
'Start the endpoint.
ep.Start()
Console.WriteLine(ep.EndpointState)
Crear un servicio de extremo de creación de reflejo de base de datos en Visual C#
En el ejemplo de código se muestra cómo crear un extremo de creación de reflejo de base de datos en SMO. Esto es necesario antes de crear un espejo de la base de datos. Utilice IsMirroringEnabled y otras propiedades en el objeto Database para crear un espejo de la base de datos.
//Set up a database mirroring endpoint on the server before
//setting up a database mirror.
//Connect to the local, default instance of SQL Server.
{
Server srv = default(Server);
srv = new Server();
//Define an Endpoint object variable for database mirroring.
Endpoint ep = default(Endpoint);
ep = new Endpoint(srv, "Mirroring_Endpoint");
ep.ProtocolType = ProtocolType.Tcp;
ep.EndpointType = EndpointType.DatabaseMirroring;
//Specify the protocol ports.
ep.Protocol.Http.SslPort = 5024;
ep.Protocol.Tcp.ListenerPort = 6666;
//Specify the role of the payload.
ep.Payload.DatabaseMirroring.ServerMirroringRole = ServerMirroringRole.All;
//Create the endpoint on the instance of SQL Server.
ep.Create();
//Start the endpoint.
ep.Start();
Console.WriteLine(ep.EndpointState);
}