Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Managed Instance
Új útvonalat ad hozzá a jelenlegi adatbázis útvonal-táblázatához. A kimenő üzenetek esetén a Service Broker a helyi adatbázisban található útválasztási táblát ellenőrzi az útvonalválasztási rendszerezéssel. Olyan üzenetek esetén, amelyek egy másik példányból indulnak, beleértve az továbbítandó üzeneteket is, a Service Broker ellenőrizi az útvonalakat az msdb-ben.
Transact-SQL szintaxis konvenciók
Syntax
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' ]
[ ; ]
Arguments
route_name
Ez az útvonal neve, amit létre kell hozni. Új útvonalat hoznak létre a jelenlegi adatbázisban, amelyet a záradékban megadott AUTHORIZATION vezető birtokol. Szerver-, adatbázis- és sémánnevek nem határozhatók meg. A route_name érvényes rendszernévnek kell lennie.
AUTHORIZATION
owner_name
Az útvonal tulajdonosát a megadott adatbázis felhasználóra vagy szerepre állítja be.
A owner_name bármely érvényes felhasználó vagy szerep neve lehet, ha a jelenlegi felhasználó a db_owner fix adatbázis szerepének vagy a rendszerinspektornak vagy a rendszergazdálkodó fix szerver szerepének tagja. Ellenkező esetben owner_name a jelenlegi felhasználó neve, annak a felhasználónak a nevét, amelyhez a jelenlegi felhasználó IMPERSONATE jogosultsággal rendelkezik, vagy annak a szerepnek a neve, amelyhez a jelenlegi felhasználó tartozik. Ha ezt a záradékot kihagyjuk, az útvonal a jelenlegi felhasználóé lesz.
WITH
Bevezeti azokat a záradékokat, amelyek meghatározzák a létrehozott útvonalat.
SERVICE_NAME = 'service_name'
Megadja a távoli szolgáltatás nevét, amelyre ez az útvonal mutat. A service_name pontosan meg kell egyeznie a távoli szolgáltatás által használt névvel. A Service Broker bájtról bájtora összehasonlítást alkalmaz a service_name egyeztetésére. Más szóval, az összehasonlítás kis- és nem veszi figyelembe a jelenlegi összeállítást. Ha a SERVICE_NAME kihagyjuk, ez az útvonal bármely szolgáltatásnévhez megegyezik, de alacsonyabb prioritással rendelkezik az egyeztetésben, mint egy SERVICE_NAME kijelölt útvonal. Az ' SQL/ServiceBroker/BrokerConfiguration ' szolgáltatásnévű útvonal egy Broker Konfigurációs Értesítés szolgáltatáshoz vezető útvonal. Egy szolgáltatáshoz vezető útvonal nem feltétlenül jelöl brókerpéldányt.
BROKER_INSTANCE = 'broker_instance_identifier'
Megadja azt az adatbázist, amely a célszolgáltatást üzemelteti. A broker_instance_identifier paraméternek a távoli adatbázis bróker példányazonosítójának kell lennie, amelyet a kiválasztott adatbázisban a következő lekérdezéssel lehet elérni:
SELECT service_broker_guid
FROM sys.databases
WHERE database_id = DB_ID()
Ha a BROKER_INSTANCE záradékot kihagyjuk, ez az útvonal bármely brókerpéldányhoz egyezik. Az egy olyan útvonal, amely bármely brókerpéldányhoz egyezik, magasabb prioritással rendelkezik az egyeztetésben, mint azok, amelyeknek explicit brókerpéldánya van, ha a beszélgetés nem jelöl meg brókerpéldányt. Olyan beszélgetéseknél, amelyek brókerpéldányt határoznak meg, egy brókerpéldány útvonal magasabb prioritással rendelkezik, mint egy olyan útvonal, amely bármely brókerpéldányt megegyezik.
ÉLET =route_lifetime
Megadja az időt, másodpercekben, hogy az SQL Server megtartja az útvonalat az útvonali táblában. Az élettartam végén az útvonal lejár, és az SQL Server már nem veszi figyelembe az útvonalat, amikor új beszélgetéshez választ útvonalat. Ha ezt a záradékot kihagyják, a route_lifetime NULL, és az útvonal soha nem jár le.
CÍM ='next_hop_address'
Az SQL Managed Instance esetén ADDRESS helyinek kell lennie.
Megadja ennek az útvonalnak a hálózati címét. A next_hop_address a következő formátumban határoz meg egy TCP/IP címet:
TCP://{ dns_name | netbios_name | ip_address } :port_number
A megadott port_number meg kell egyeznie a Service Broker végpontjának portszámával egy adott SQL Server példány portszámával a megadott számítógépen. Ezt a kiválasztott adatbázisban a következő lekérdezéssel lehet elérni:
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';
Ha a szolgáltatás tükrözött adatbázisban van hosztolva, meg kell határoznod a másik példány MIRROR_ADDRESS is, amely tükrözött adatbázist üzemeltet. Egyébként ez az útvonal nem vezet át a tükörre.
Ha egy útvonal a next_hop_address számára 'LOCAL'-t jelöl, az üzenetet egy szolgáltatáshoz juttatják a jelenlegi SQL Server példányon.
Amikor egy útvonal a next_hop_address számára 'TRANSPORT'-ot jelöl, a hálózati címet a szolgáltatás nevében szereplő hálózati cím alapján határozzák meg. Egy olyan útvonal, amely a 'TRANSPORT' -ot megadja, nem feltétlenül szolgál szolgáltatásnevet vagy brókerpéldányt.
MIRROR_ADDRESS ='next_hop_mirror_address'
Megadja egy tükrözött adatbázis hálózati címét, amelynek egy tükrözött adatbázisa a next_hop_address-n található.
A next_hop_mirror_address a következő formátumban határoz meg egy TCP/IP címet:
TCP://{ dns_name | netbios_name | ip_address } :port_number
A megadott port_number meg kell egyeznie a Service Broker végpontjának portszámával egy adott SQL Server példány portszámával a megadott számítógépen. Ezt a kiválasztott adatbázisban a következő lekérdezéssel lehet elérni:
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';
Amikor a MIRROR_ADDRESS meg van jelölve, az útvonalnak meg kell határoznia az SERVICE_NAME és a BROKER_INSTANCE klauzulatot. Egy olyan útvonal, amely a next_hop_address számára 'LOCAL' vagy 'TRANSPORT' jelölést jelöl, nem feltétlenül jelöl tükörcímet.
Remarks
Az útvonalakat tároló úttábla egy metaadattábla, amely a sys.routes katalógusnézeten keresztül olvasható. Ez a katalógusnézet csak a , CREATE ROUTE, és ALTER ROUTE utasítások segítségével frissíthetőDROP ROUTE.
Alapértelmezés szerint minden felhasználói adatbázisban az útválasztási tábla egy útvonalat tartalmaz. Ezt az útvonalat AutoCreatedLocal néven ismerték. Az útvonal a next_hop_address számára a 'LOCAL'-t jelöli, és egyezik bármely szolgáltatásnév és bróker példányazonosítóval.
Ha egy útvonal a next_hop_address számára 'TRANSPORT'-ot jelöl, a hálózati címet a szolgáltatás neve alapján határozzák meg. SQL Server sikeresen feldolgozhatják a hálózati címmel kezdődő szolgáltatásneveket egy next_hop_address számára érvényes formátumban.
Az útválasztási tábla bármilyen útvonalat tartalmazhat, amelyek ugyanazt a szolgáltatást, hálózati címet és brókerpéldány azonosítót adják meg. Ebben az esetben a Service Broker egy olyan eljárással választ egy útvonalat, amely a beszélgetésben megadott információk és az útvonali táblázatban szereplő információk közötti legpontosabb egyezést találja.
A Service Broker nem távolítja el a lejárt útvonalakat az útvonali táblából. A lejárt útvonal aktiválható a nyilatkozat ALTER ROUTE használatával.
Egy útvonal nem lehet ideiglenes tárgy. Az útvonalnevek, amelyek a "S" betűvel # kezdődnek, megengedettek, de állandó objektumok.
Permissions
Az útvonal létrehozásának engedélye alapértelmezettként a db_ddladmin vagy db_owner fix adatbázis szerepének tagjai, valamint a rendszergazdák fix szerver szerepének felel meg.
Examples
A. TCP/IP útvonal létrehozása DNS név használatával
A következő példa egy útvonalat hoz létre a szolgáltatáshoz //Adventure-Works.com/Expenses. Az útvonal előírja, hogy a szolgáltatáshoz érkező üzenetek TCP-n keresztül a DNS név 1234által azonosított hosztevő portjára www.Adventure-Works.com jutnak. A célszerver az üzeneteket érkezéskor eljuttatja a bróker példányhoz, amelyet az egyedi azonosítóval D8D4D268-00A3-4C62-8F91-634B89C1E315azonosít.
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. TCP/IP útvonal létrehozása NetBIOS név használatával
A következő példa egy útvonalat hoz létre a szolgáltatáshoz //Adventure-Works.com/Expenses. Az útvonal előírja, hogy a szolgáltatáshoz érkező üzenetek TCP-n keresztül a NetBIOS 1234név által azonosított hosztevő portjára SERVER02 jutnak. Érkezéskor a cél SQL Server továbbítja az üzenetet az egyedi azonosítóval D8D4D268-00A3-4C62-8F91-634B89C1E315azonosított adatbázis-példányhoz.
CREATE ROUTE ExpenseRoute
WITH
SERVICE_NAME = '//Adventure-Works.com/Expenses',
BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89C1E315',
ADDRESS = 'TCP://SERVER02:1234' ;
C. TCP/IP útvonal létrehozása IP-cím használatával
A következő példa egy útvonalat hoz létre a szolgáltatáshoz //Adventure-Works.com/Expenses. Az útvonal előírja, hogy az üzenetek a szolgáltatáshoz TCP-n keresztül jutnak a 1234 gazda portjába az IP-címen 192.168.10.2. Érkezéskor a cél SQL Server továbbítja az üzenetet az egyedi azonosítóval D8D4D268-00A3-4C62-8F91-634B89C1E315azonosított bróker példányhoz.
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. Útvonal létrehozása egy továbbító brókerhez
A következő példa létrehoz egy útvonalat a szerveren dispatch.Adventure-Works.comlévő továbbító brókerhez. Mivel sem a szolgáltatásnév, sem a bróker példányazonosítója nincs megadva, az SQL Server ezt az útvonalat használja olyan szolgáltatásokhoz, amelyeknél nincs más útvonal definiálva.
CREATE ROUTE ExpenseRoute
WITH
ADDRESS = 'TCP://dispatch.Adventure-Works.com' ;
E. Útvonal létrehozása egy helyi szolgáltatáshoz
A következő példa ugyanabban az esetben hozza létre az útvonalat a szolgáltatáshoz //Adventure-Works.com/LogRequests , mint az útvonal.
CREATE ROUTE LogRequests
WITH
SERVICE_NAME = '//Adventure-Works.com/LogRequests',
ADDRESS = 'LOCAL' ;
F. Meghatározott élettartamú útvonal létrehozása
A következő példa egy útvonalat hoz létre a szolgáltatáshoz //Adventure-Works.com/Expenses. Az útvonal élettartama 259200 másodpercek, ami 72 órának felel meg.
CREATE ROUTE ExpenseRoute
WITH
SERVICE_NAME = '//Adventure-Works.com/Expenses',
LIFETIME = 259200,
ADDRESS = 'TCP://services.Adventure-Works.com:1234' ;
G. Útvonal létrehozása tükrözött adatbázishoz
A következő példa egy útvonalat hoz létre a szolgáltatáshoz //Adventure-Works.com/Expenses. A szolgáltatás egy tükrözött adatbázisban található. Az egyik tükrözött adatbázis a címen services.Adventure-Works.com:1234található, a másik pedig a címen 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. Olyan útvonal létrehozása, amely a szolgáltatásnevet használja az útvonalválasztáshoz
A következő példa egy olyan útvonalat hoz létre, amely a szolgáltatás nevét használja az üzenet elküldésének hálózati címének meghatározására. Figyeljük meg, hogy egy olyan útvonal, amely hálózati címként jelöli 'TRANSPORT' meg, alacsonyabb prioritással rendelkezik az egyeztetésben, mint más útvonalakkal.
CREATE ROUTE TransportRoute
WITH ADDRESS = 'TRANSPORT' ;