Implementazione di endpoint

Un endpoint è un servizio che può restare in attesa di richieste a livello nativo. In SMO sono supportati vari tipi di endpoint tramite l'oggetto Endpoint. È possibile creare un servizio di endpoint che gestisce un tipo specifico di payload, il quale utilizza un protocollo specifico, creando un'istanza di un oggetto Endpoint e impostandone le proprietà.

La proprietà EndpointType dell'oggetto Endpoint può essere utilizzata per specificare uno dei seguenti tipi di payload:

  • Mirroring del database

  • SOAP

  • Service Broker

  • Transact-SQL

La proprietà ProtocolType può inoltre essere utilizzata per specificare i due protocolli supportati seguenti:

  • Protocollo HTTP

  • Protocollo TCP

Avendo specificato il tipo di payload, il payload effettivo può essere impostato tramite la proprietà dell'oggetto Payload. La proprietà dell'oggetto Payload fornisce un riferimento a un oggetto payload del tipo specificato, per cui è possibile modificare le proprietà.

Per l'oggetto DatabaseMirroringPayload, è necessario specificare il ruolo di mirroring e se è abilitata o meno la crittografia. L'oggetto ServiceBrokerPayload richiede informazioni sull'inoltro di messaggi, sul numero massimo di connessioni consentite e sulla modalità di autenticazione. L'oggetto SoapPayloadMethod richiede l'impostazione di varie proprietà tra cui la proprietà dell'oggetto Add che specifica i metodi di payload SOAP disponibili ai client (stored procedure e funzioni definite dall'utente).

Analogamente, il protocollo può essere impostato tramite la proprietà dell'oggetto Protocol che fa riferimento a un oggetto protocollo del tipo specificato dalla proprietà ProtocolType. L'oggetto HttpProtocol richiede un elenco di indirizzi IP con restrizioni e informazioni relative a porte, siti Web e autenticazione. L'oggetto TcpProtocol richiede inoltre un elenco di indirizzi IP con restrizioni e informazioni relative alle porte.

Quando l'endpoint è stato creato e definito completamente, è possibile concedere, revocare e negare l'accesso a utenti, gruppi, ruoli e account di accesso del database.

Esempio

Per l'esempio di codice seguente, è necessario selezionare l'ambiente, il modello e il linguaggio di programmazione per la creazione dell'applicazione. Per ulteriori informazioni, vedere Procedura: Creazione di un progetto Visual Basic SMO in Visual Studio .NET e Procedura: Creazione di un progetto Visual C# SMO in Visual Studio .NET.

Creazione di un servizio di endpoint del mirroring del database in Visual Basic

Nell'esempio di codice viene illustrato come creare un endpoint del mirroring del database in SMO. È necessario eseguire questa operazione prima di creare un database mirror. Utilizzare IsMirroringEnabled e altre proprietà nell'oggetto Database per creare un mirroring del database.

'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)

Creazione di un servizio di endpoint del mirroring del database in Visual C#

Nell'esempio di codice viene illustrato come creare un endpoint del mirroring del database in SMO. È necessario eseguire questa operazione prima di creare un database mirror. Utilizzare IsMirroringEnabled e altre proprietà nell'oggetto Database per creare un mirroring del database.

{
            //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 = 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);
        }

Creazione di un servizio di endpoint del mirroring del database in PowerShell

Nell'esempio di codice viene illustrato come creare un endpoint del mirroring del database in SMO. È necessario eseguire questa operazione prima di creare un database mirror. Utilizzare IsMirroringEnabled e altre proprietà nell'oggetto Database per creare un mirroring del database.

# Set the path context to the local, default instance of SQL Server.
CD \sql\localhost\
$srv = get-item default

#Get a new endpoint to congure and add
$ep = New-Object -TypeName Microsoft.SqlServer.Management.SMO.Endpoint -argumentlist $srv,"Mirroring_Endpoint"

#Set some properties
$ep.ProtocolType = [Microsoft.SqlServer.Management.SMO.ProtocolType]::Tcp
$ep.EndpointType = [Microsoft.SqlServer.Management.SMO.EndpointType]::DatabaseMirroring
$ep.Protocol.Http.SslPort = 5024
$ep.Protocol.Tcp.ListenerPort = 6666 #inline comment
$ep.Payload.DatabaseMirroring.ServerMirroringRole = [Microsoft.SqlServer.Management.SMO.ServerMirroringRole]::All

# Create the endpoint on the instance
$ep.Create()

# Start the endpoint
$ep.Start()

# Report its state
$ep.EndpointState;