Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server Azure SQL Yönetilen Örneği
Mevcut veritabanı için yönlendirme tablosuna yeni bir rota ekler. Giden mesajlar için, Service Broker yönlendirmeyi yerel veritabanındaki yönlendirme tablosunu kontrol ederek belirler. Başka bir durumdan gelen konuşmalardaki mesajlar için, iletilmesi gereken mesajlar dahil, Service Broker msdb'deki rotaları kontrol eder.
Transact-SQL söz dizimi kuralları
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
Oluşturulacak rotanın adıdır. Mevcut veritabanında yeni bir güzergah oluşturulur ve maddede belirtilen AUTHORIZATION müdüre aittir. Sunucu, veritabanı ve şema adları belirtilemez.
route_name geçerli bir sistem adı olmalı.
AUTHORIZATION
owner_name
Rotanın sahibini belirtilen veritabanı kullanıcısı veya rolü olarak ayarlar.
owner_name, mevcut kullanıcı db_owner sabit veritabanı rolünün veya sistem yöneticisinin sabit sunucu rolünün üyesi olduğunda herhangi bir geçerli kullanıcı veya rol olabilir. Aksi takdirde, owner_name mevcut kullanıcının adı, mevcut kullanıcının IMPERSONATE iznine sahip olduğu kullanıcı adı veya mevcut kullanıcının ait olduğu bir rolün adı olmalıdır. Bu madde çıkarıldığında, rota mevcut kullanıcıya aittir.
WITH
Oluşturulan rotayı tanımlayan maddeleri tanıtır.
SERVICE_NAME = 'service_name'
Bu güzergahın işaret ettiği uzak hizmetin adını belirtir.
service_name, uzaktan servisin kullandığı isimle tam olarak eşleşmelidir. Service Broker, service_name eşleştirmek için bayt bayt karşılaştırma kullanır. Başka bir deyişle, karşılaştırma büyük harf duyarlıdır ve mevcut derleme dikkate alınmaz. Eğer SERVICE_NAME atlanırsa, bu hat herhangi bir hizmet adıyla eşleşir, ancak eşleştirme önceliği SERVICE_NAME belirten bir rotaya göre daha düşüktür.
'SQL/ServiceBroker/BrokerConfiguration' hizmet adıyla bir rota, Broker Yapılandırma Bildirimi hizmetine giden bir yoldur. Bu hizmete giden bir yol aracı örneği belirtmeyebilir.
BROKER_INSTANCE = 'broker_instance_identifier'
Hedef servisi barındıran veritabanını belirtir.
broker_instance_identifier parametresi, seçilen veritabanında aşağıdaki sorgu çalıştırılarak elde edilebilecek uzak veritabanı için aracı örnek tanımlayıcısı olmalıdır:
SELECT service_broker_guid
FROM sys.databases
WHERE database_id = DB_ID()
BROKER_INSTANCE maddesi çıkarıldığında, bu yol herhangi bir aracı şirket örneğiyle eşleşir. Herhangi bir aracı örneğiyle eşleşen bir rota, konuşma bir broker örneği belirtmediğinde açıkça bir broker örneği olan rotadan daha yüksek önceliğe sahiptir. Bir broker örneği belirten konuşmalar için, bir broker örneği olan bir rota, herhangi bir broker örneğine eşlik eden bir rotadan daha yüksek önceliğe sahiptir.
ÖMÜR =BOYU route_lifetime
SQL Server'ın rotayı yönlendirme tablosunda tuttuğu süreyi saniye cinsinden belirtir. Ömrün sonunda, rota süresi dolur ve SQL Server yeni bir konuşma için rota seçerken rotayı dikkate almaz. Bu madde çıkarılırsa, route_lifetime NULL olur ve rota asla süresi dolmaz.
ADRES ='next_hop_address'
SQL Yönetilen Örneği için, ADDRESS yerel olmalıdır.
Bu rota için ağ adresini belirtir. next_hop_address, aşağıdaki formatta bir TCP/IP adresi belirtir:
TCP://{ dns_name | netbios_name | ip_address } :port_number
Belirtilen port_number, belirtilen bilgisayardaki bir SQL Server örneğinin Service Broker uç noktasının port numarasıyla eşleşmelidir. Bu, seçilen veritabanında aşağıdaki sorgu çalıştırılarak elde edilebilir:
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';
Hizmet aynalı bir veritabanında barındırıldığında, aynı zamanda yansıtılmış veritabanını barındıran diğer örnek için MIRROR_ADDRESS belirtmeniz gerekir. Aksi takdirde, bu yol aynaya geçiş yapmaz.
Bir rota next_hop_addressiçin 'LOCAL' belirttiğinde, mesaj mevcut SQL Server örneği içindeki bir hizmete iletilir.
Bir rota next_hop_address için 'TRANSPORT' belirttiğinde, ağ adresi hizmetin adındaki ağ adresine göre belirlenir. 'TRANSPORT' belirten bir güzergah hizmet adı veya aracı örneği belirtmeyebilir.
MIRROR_ADDRESS ='next_hop_mirror_address'
next_hop_address'de barındırılan bir yansıtılmış veritabanı için ağ adresini belirtir.
next_hop_mirror_address, aşağıdaki formatta bir TCP/IP adresi belirtir:
TCP://{ dns_name | netbios_name | ip_address } :port_number
Belirtilen port_number, belirtilen bilgisayardaki bir SQL Server örneğinin Service Broker uç noktasının port numarasıyla eşleşmelidir. Bu, seçilen veritabanında aşağıdaki sorgu çalıştırılarak elde edilebilir:
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';
MIRROR_ADDRESS belirtildiğinde, rota SERVICE_NAME ve BROKER_INSTANCE maddesini belirtmelidir. next_hop_addressiçin 'LOCAL' veya 'TRANSPORT' belirten bir güzergah ayna adresi belirtmeyebilir.
Remarks
Rotaları depolayan yönlendirme tablosu, sys.routes katalog görünümü üzerinden okunabilen bir meta veri tablosudur. Bu katalog görünümü yalnızca , ALTER ROUTE, ve DROP ROUTE ifadeleri aracılığıyla CREATE ROUTEgüncellenebilir.
Varsayılan olarak, her kullanıcı veritabanındaki yönlendirme tablosu bir rota içerir. Bu güzergah AutoCreatedLocal olarak adlandırılır. Rota, next_hop_address için 'LOCAL' belirtir ve herhangi bir hizmet adı ile broker örnek tanımlayıcısını eşleştirir.
Bir güzergah next_hop_addressiçin 'TRANSPORT' belirttiğinde, ağ adresi hizmetin adına göre belirlenir. SQL Server, bir ağ adresiyle başlayan hizmet isimlerini, bir next_hop_address için geçerli bir formatta başarıyla işleyebilir.
Yönlendirme tablosu, aynı hizmeti, ağ adresini ve aracı görev tanımlayıcısını belirten herhangi sayıda rotayı içerebilir. Bu durumda, Service Broker, konuşmada belirtilen bilgiler ile yönlendirme tablosunda belirtilen bilgiler arasında en kesin eşleşmeyi bulmak için tasarlanmış bir prosedür kullanarak bir rota seçer.
Service Broker, süresi dolmuş güzergahları yönlendirme tablosundan kaldırmaz. Süresi dolmuş bir rota bu ALTER ROUTE ifadeyle aktif hale getirilebilir.
Bir rota geçici bir nesne olamaz. Rota isimleri ile # başlayan ancak kalıcı nesnelerdir.
Permissions
Rota oluşturma izni, varsayılan olarak db_ddladmin veya db_owner sabit veritabanı rolü üyelerine ve sysadmin sabit sunucu rolüne aittir.
Examples
A. DNS adı kullanılarak TCP/IP rotası oluşturmak
Aşağıdaki örnek, hizmete //Adventure-Works.com/Expensesgiden bir güzergah oluşturur. Rota, bu hizmete gönderilen mesajların TCP üzerinden DNS adıyla www.Adventure-Works.comtanımlanan ana bilgisayar üzerindeki porta 1234 taşınmasını belirtir. Hedef sunucu, mesajları vardığında benzersiz tanımlayıcı D8D4D268-00A3-4C62-8F91-634B89C1E315ile tanımlanan aracı örneğine iletir.
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. NetBIOS adı kullanılarak TCP/IP rotası oluşturmak
Aşağıdaki örnek, hizmete //Adventure-Works.com/Expensesgiden bir güzergah oluşturur. Rota, bu hizmete gönderilen mesajların TCP üzerinden NetBIOS SERVER02adıyla tanımlanan ana bilgisayardaki porta 1234 taşınmasını belirtir. Varış noktasında, hedef SQL Server mesajı benzersiz D8D4D268-00A3-4C62-8F91-634B89C1E315tanımlayıcı ile tanımlanan veritabanı örneğine iletir.
CREATE ROUTE ExpenseRoute
WITH
SERVICE_NAME = '//Adventure-Works.com/Expenses',
BROKER_INSTANCE = 'D8D4D268-00A3-4C62-8F91-634B89C1E315',
ADDRESS = 'TCP://SERVER02:1234' ;
C. IP adresi kullanarak TCP/IP rotası oluşturmak
Aşağıdaki örnek, hizmete //Adventure-Works.com/Expensesgiden bir güzergah oluşturur. Rota, bu hizmete gönderilen 192.168.10.2mesajların TCP üzerinden IP adresindeki ana porta 1234 taşındığını belirtir. Ulaşıldığında, hedef SQL Server mesajı benzersiz tanımlayıcı D8D4D268-00A3-4C62-8F91-634B89C1E315ile tanımlanan aracı örneğine iletir.
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. Bir yönlendirme komisyoncusuna yol oluşturmak
Aşağıdaki örnek, sunucudaki dispatch.Adventure-Works.comilete aracısına bir yol oluşturur. Hem servis adı hem de aracı örneği tanımlayıcısı belirtilmediğinden, SQL Server başka bir rota tanımı olmayan servisler için bu yolu kullanır.
CREATE ROUTE ExpenseRoute
WITH
ADDRESS = 'TCP://dispatch.Adventure-Works.com' ;
E. Yerel bir hizmete giden bir güzergah oluşturmak
Aşağıdaki örnek, güzergahla aynı durumda hizmete //Adventure-Works.com/LogRequests giden bir rota oluşturur.
CREATE ROUTE LogRequests
WITH
SERVICE_NAME = '//Adventure-Works.com/LogRequests',
ADDRESS = 'LOCAL' ;
F. Belirli bir ömrü olan bir güzergah oluşturmak
Aşağıdaki örnek, hizmete //Adventure-Works.com/Expensesgiden bir güzergah oluşturur. Güzergahın 259200 ömrü saniyelerdir, bu da 72 saate eşdeğerdir.
CREATE ROUTE ExpenseRoute
WITH
SERVICE_NAME = '//Adventure-Works.com/Expenses',
LIFETIME = 259200,
ADDRESS = 'TCP://services.Adventure-Works.com:1234' ;
G. Yansıtılmış bir veritabanına yol oluşturmak
Aşağıdaki örnek, hizmete //Adventure-Works.com/Expensesgiden bir güzergah oluşturur. Hizmet, yansıtılan bir veritabanında barındırılır. Yansıtılan veritabanlarından biri adreste services.Adventure-Works.com:1234yer alırken, diğer veritabanı services-mirror.Adventure-Works.com:1234adresinde yer alır.
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. Hizmet adını kullanarak yönlendirme için bir güzergah oluşturmak
Aşağıdaki örnek, mesajın gönderileceği ağ adresini belirlemek için hizmet adını kullanan bir rota oluşturur. Ağ adresi olarak belirtilen 'TRANSPORT' bir güzergahın, diğer rotalara göre eşleşme önceliği daha düşük olduğunu fark edin.
CREATE ROUTE TransportRoute
WITH ADDRESS = 'TRANSPORT' ;
Ayrıca Bkz.
ALTER ROUTE (Transact-SQL)
DROP ROUTE (Transact-SQL)
OLAY VERILERI (Transact-SQL)