Udostępnij za pośrednictwem


Utworzenie trasy (Transact-SQL)

Dodaje nową trasa do tabela routingu w bieżącej bazie danych.Dla wiadomości wychodzących Service Broker Określa routingu sprawdzając tabela routingu w lokalnej bazie danych.W przypadku wiadomości w konwersacji, które pochodzą z innej wystąpieniew tym wiadomości przesyłanych dalej, Service Broker sprawdza, czy trasy w msdb.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

CREATE ROUTE route_name
[ AUTHORIZATION owner_name ]
WITH  
   [ SERVICE_NAME = 'service_name', ]
   [ BROKER_INSTANCE = 'broker_instance_identifier' , ]
   [ LIFETIME = route_lifetime , ]
   ADDRESS =  'next_hop_address'
   [ , MIRROR_ADDRESS = 'next_hop_mirror_address' ]
[ ; ]

Argumenty

  • route_name
    Jest nazwą trasa do utworzenia.Nowa trasa jest tworzony w bieżącej bazie danych i posiadanych przez głównego zobowiązanego, określonych w klauzulaautoryzacji.Nie można określić nazwy serwera, bazy danych i schematu.route_name Musi być prawidłową sysname.

  • AUTORYZACJAowner_name
    Ustawia właściciela trasa określonej bazy danych użytkownika lub roli.owner_name Może być nazwa roli lub użytkownika jest nieprawidłowe, gdy bieżący użytkownik jest element członkowski albo db_owner stałej rola bazy danych lub sysadminstała rola serwera. W przeciwnym razie owner_name musi mieć nazwę bieżącego użytkownika, nazwa użytkownika, że bieżący użytkownik ma uprawnienia PERSONIFIKUJ lub nazwę roli, do której należy użytkownik bieżący.Jeżeli pominięto tej klauzula trasa należy do bieżącego użytkownika.

  • Z
    Wprowadzono klauzule, definiujących trasa tworzony.

  • SERVICE_NAME = 'service_name"
    Określa nazwę zdalnego usługa wskazuje tej trasa .service_name Musi dokładnie odpowiadać nazwie używa zdalnego usługa .Service BrokerPorównanie bajt po bajcie używa w celu dopasowania service_name.Innymi słowy porównanie jest przypadek wielkość liter i nie uwzględnić bieżące sortowanie.Pominięcie nazwa_usługi tej trasa dopasowuje dowolną nazwę usługa , ale ma niższy priorytet dla dopasowania niż określa nazwa_usługi trasa .trasa z nazwą usługa SQL/servicebroker/brokerconfiguration" jest trasa Broker ogłoszenia konfiguracji usługa.trasa ta usługa nie może określać broker wystąpienie.

  • BROKER_INSTANCE = 'broker_instance_identifier"
    Określa miejsce docelowe usługabazy danych.broker_instance_identifier Parametr musi być identyfikator wystąpienie brokera dla zdalnej bazy danych, który można uzyskać, uruchamiając następującą kwerendę w wybranej bazie danych:

    SELECT service_broker_guid
    FROM sys.databases
    WHERE database_id = DB_ID()
    

    Jeżeli pominięto BROKER_INSTANCE klauzula tej trasa odpowiada dowolnej broker wystąpienie.trasa , która pasuje dowolnej broker wystąpienie ma wyższy priorytet dopasowywania niż trasy z brokera jawnego wystąpienie podczas konwersacji nie określa broker wystąpienie.Konwersacje określające broker wystąpienie trasa z brokera wystąpienie ma wyższy priorytet niż trasa , która pasuje dowolnej broker wystąpienie.

  • Okres istnienia **=**route_lifetime
    Określa czasw sekundach, który SQL Server zachowuje trasa w tabelaroutingu.Pod koniec okresu istnienia trasa wygaśnie, i SQL Server już uzna trasa podczas wybierania trasa dla nowego konwersacji.W przypadku pominięcia tej klauzula route_lifetime jest równa NULL i trasa nigdy nie wygasa.

  • ADDRESS ='next_hop_address'
    Określa adres sieciowy dla tej trasa.next_hop_address Określa adres TCP/IP w następującym formacie:

        Protokół TCP: / /{ dns_name | netbios_name | ip_address } **:**port_number

    Określony port_number musi być zgodny z numerem portu Service Broker endpoint wystąpienie SQL Server na określonym komputerze.Można to uzyskać, uruchamiając następującą kwerendę w wybranej bazie danych:

    SELECT tcpe.port
    FROM sys.tcp_endpoints AS tcpe
    INNER JOIN sys.service_broker_endpoints AS ssbe
       ON ssbe.endpoint_id = tcpe.endpoint_id
    WHERE ssbe.name = N'MyServiceBrokerEndpoint';
    

    usługa jest obsługiwana w bazie danych dublowanego, należy także określić MIRROR_ADDRESS innego wystąpienie obsługującego dublowanego bazy danych.W przeciwnym razie tej trasa nie nie praca awaryjna do woluminu dublowanego.

    Kiedy trasa Określa "LOKALNĄ" dla next_hop_address, wiadomość zostanie dostarczona do usługa w ramach bieżącego wystąpienie SQL Server.

    Kiedy trasa Określa "TRANSPORT" dla next_hop_address, adres sieciowy jest określana na podstawie adresu sieci w nazwie usługa.Określa trasa "TRANSPORT" nie może określić nazwę lub brokera usługa wystąpienie.

  • MIRROR_ADDRESS ='next_hop_mirror_address"
    Określa adres sieciowy dublowanego bazy danych z jednym dublowanego bazy danych znajdujących się na next_hop_address.next_hop_mirror_address Określa adres TCP/IP w następującym formacie:

    Protokół TCP: / /{ dns_name | netbios_name | adres_IP } : port_number

    Określony port_number musi być zgodny z numerem portu Service Broker endpoint wystąpienie SQL Server na określonym komputerze.Można to uzyskać, uruchamiając następującą kwerendę w wybranej bazie danych:

    SELECT tcpe.port
    FROM sys.tcp_endpoints AS tcpe
    INNER JOIN sys.service_broker_endpoints AS ssbe
       ON ssbe.endpoint_id = tcpe.endpoint_id
    WHERE ssbe.name = N'MyServiceBrokerEndpoint';
    

    Po określeniu MIRROR_ADDRESS trasa należy określić nazwa_usługi klauzula i BROKER_INSTANCE klauzula.Określa trasa "LOKALNĄ" lub "TRANSPORT" dla next_hop_address nie może określić adresu dublowania.

Uwagi

Routing tabela przechowuje trasy jest metadane tabela , która może być odczytana przez sys.routes katalogu widoku.W tym widoku wykazu można zaktualizować tylko poprzez tworzenie MARSZRUT, ZMIEŃ TRASĘ i instrukcji DROP trasy.

Domyślnie tabela routingu w każdej baza danych użytkownika zawiera trasa.O nazwie tej trasa AutoCreatedLocal.Określa trasa "LOKALNĄ" dla next_hop_address i dopasowuje dowolną nazwę usługa i broker identyfikator wystąpienie .

Kiedy trasa Określa "TRANSPORT" dla next_hop_address, adres sieciowy jest określana na podstawie nazwy usługa.SQL Serverpomyślnie może przetwarzać nazwy usługa , które zaczynają się od adresu sieciowego w formacie, który jest prawidłowy dla next_hop_address.

tabela routingu może zawierać dowolną liczbę tras, które określają tej samej usługa, adres sieciowy i identyfikator wystąpienie broker.W tym przypadek Service Broker wybiera trasa za pomocą procedury zaprojektowane, aby znaleźć najbardziej dokładne dopasowanie między informacje określone w komunikacji i informacji w tabelaroutingu.Aby uzyskać więcej informacji dotyczących sposobu Service Broker wybiera trasa, zobacz Service Broker routingu.

Service Brokernie powoduje usunięcia wygasłe marszrut z tabelaroutingu.Wygasła trasa może zostać uaktywniona przy użyciu tras ALTER instrukcja.

trasa nie może być tymczasowy obiekt.Trasa nazwy zaczynające się od # są dozwolone, ale są trwałe obiekty.

Uprawnienia

Uprawnienie do tworzenia trasa domyślne ustawienia dla członków db_ddladmin lub db_owner ról stałej bazy danych i sysadmin stała rola serwera.

Przykłady

A.Tworzenie trasa protokołu TCP/IP przy użyciu nazwy DNS

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/Expenses.Określa trasa podróży wiadomości do tej usługa za pośrednictwem portu TCP, port 1234 na hoście, identyfikowane przez nazwę DNS www.Adventure-Works.com.Serwer miejsce docelowe dostarcza wiadomości po przybyciu do broker wystąpienie określone przez identyfikator unikatowy D8D4D268-00A3-4C62-8F91-634B89C1E315.

CREATE ROUTE ExpenseRoute
    WITH
    SERVICE_NAME = '//Adventure-Works.com/Expenses',
    BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89C1E315',
    ADDRESS = 'TCP://www.Adventure-Works.com:1234' ;

B.Tworzenie trasa protokołu TCP/IP przy użyciu nazwy NetBIOS

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/Expenses.Określa trasa podróży wiadomości do tej usługa za pośrednictwem portu TCP, port 1234 na hoście, identyfikowane przez nazwę NetBIOS SERVER02.Po przybyciu miejsce docelowe SQL Server dostarcza wiadomość do bazy danych wystąpienie identyfikowane przez identyfikator unikatowy D8D4D268-00A3-4C62-8F91-634B89C1E315.

CREATE ROUTE ExpenseRoute
    WITH 
    SERVICE_NAME = '//Adventure-Works.com/Expenses',
    BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89C1E315',
    ADDRESS = 'TCP://SERVER02:1234' ;

C.Tworzenie trasa protokołu TCP/IP przy użyciu adresu IP

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/Expenses.Określa trasa podróży wiadomości do tej usługa za pośrednictwem portu TCP, port 1234 na hoście z adresem IP 192.168.10.2.Po przybyciu miejsce docelowe SQL Server dostarcza wiadomość broker wystąpienie określone przez identyfikator unikatowy D8D4D268-00A3-4C62-8F91-634B89C1E315.

CREATE ROUTE ExpenseRoute
    WITH
    SERVICE_NAME = '//Adventure-Works.com/Expenses',
    BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89C1E315',
    ADDRESS = 'TCP://192.168.10.2:1234' ;

D.Tworzenie trasa broker przesyłania dalej

Poniższy przykład tworzy trasa do broker przesyłanie dalej na serwerze dispatch.Adventure-Works.com.Ponieważ nie określono nazwy usługa i identyfikatora wystąpienie broker, SQL Server używa tej trasa dla usług, które mają inne trasa zdefiniowany.Aby uzyskać więcej informacji o routingu, zobacz Service Broker routingu.

CREATE ROUTE ExpenseRoute
    WITH
    ADDRESS = 'TCP://dispatch.Adventure-Works.com' ; 

E.Tworzenie trasa lokalnej usługa

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/LogRequests w tej samej wystąpienie jako trasa.

CREATE ROUTE LogRequests
    WITH
    SERVICE_NAME = '//Adventure-Works.com/LogRequests',
    ADDRESS = 'LOCAL' ;

F.Tworzenie trasa z określonego okresu istnienia

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/Expenses.Okres istnienia dla trasa jest 259200 sekund, które co daje do 72 godzin.

CREATE ROUTE ExpenseRoute
    WITH
    SERVICE_NAME = '//Adventure-Works.com/Expenses',
    LIFETIME = 259200,
    ADDRESS = 'TCP://services.Adventure-Works.com:1234' ;

G.Tworzenie trasa dublowanego bazy danych

Poniższy przykład tworzy trasa do usługa //Adventure-Works.com/Expenses.usługa jest obsługiwana w bazie danych, która jest dublowany.Jedną z dublowanego baz danych znajduje się pod adresem services.Adventure-Works.com:1234, a inne bazy danych znajduje się pod adresem services-mirror.Adventure-Works.com:1234.

CREATE ROUTE ExpenseRoute
    WITH
    SERVICE_NAME = '//Adventure-Works.com/Expenses',
    BROKER_INSTANCE = '69fcc80c-2239-4700-8437-1001ecddf933',
    ADDRESS = 'TCP://services.Adventure-Works.com:1234', 
    MIRROR_ADDRESS = 'TCP://services-mirror.Adventure-Works.com:1234' ;

H.Tworzenie trasa używa nazwy usługa routingu

Poniższy przykład tworzy używa nazwy usługa do określenia adresu sieciowego, aby wysłać wiadomość do trasa .Należy zauważyć, że trasa określająca 'TRANSPORT' jak sieć adres ma niższy priorytet dla dopasowania niż inne trasy.

CREATE ROUTE TransportRoute
    WITH ADDRESS = 'TRANSPORT' ;