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.
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' ;
Zobacz także