Sorun giderme Yönlendirme ve ileti teslimi
Bu bölümde Yönlendirme ve ileti teslimi ilgili sık karşılaşılan sorunları düzeltmek için öneriler sunar.
Tekniği: İleti teslimi Tanılama
İki hizmet iletileri başarıyla teslim edilmemesi durumunda kullanmak ssbdiagnose konuşmanın bir çalışma zamanı rapor üretmek için yardımcı program.Çalışma zamanı raporu görüşme operasyonlarında karşılaşılan hataları görüntüler.Hatalar oluşursa, ssbdiagnose ayrıca yapılandırma hizmetleri arasında analiz ve bulduğu herhangi bir yapılandırma sorunlarını bildirin.Daha fazla bilgi için bkz: ssbdiagnose yardımcı programı.
Sorun: İletileri iletim sırada kalıyor.
Emin Service Broker ileti teslim etkinleştirilmiş veritabanı.The is_broker_enabled column of sys.databases shows whether broker message delivery is activated, as shown in the following sample:
SELECT is_broker_enabled FROM sys.databases
WHERE database_id = DB_ID() ;
Broker ileti teslimi için yanlış veritabanı teslim iletileri engellemek için devre dışı bırakılabilir.Hakkında daha fazla bilgi için Service Broker için bkz: ileti teslim Hizmet Aracısı kimlikleri yönetme.Etkinleştirme hakkında daha fazla bilgi için Service Broker için bkz: ileti teslim Nasıl yapılır: Hizmet Aracısı ileti teslimi veritabanlarında (Transact-SQL) etkinleştir.
If Service Broker message delivery is active, check the transmission_status column in the sys.transmission_queue catalog view for the messages.Sık karşılaşılan hata iletileri şunlardır:
İleti |
Açıklama |
---|---|
Hizmet için yol yok. |
Service Broker Belirtilen hizmet için bir yol bulamadı. |
Hedef Service Broker erişilemiyor. |
Service BrokerHedef için ileti teslim edilemedi Service Broker. |
Aktarım Katmanı kullanılamaz. |
Hayır Service Broker Bitiş noktası var örnek, veya Service Broker Bitiş noktası başarıyla başlamadı. |
Hedef sıra devre dışı bırakılır. |
The queue that the destination service uses has the STATUS option set to OFF.Service Broker does not add new messages to a queue with a STATUS of OFF. |
Veri alınırken bir hata oluştu: ' 10054 (varolan bir bağlantının uzak ana makine tarafından zorla kapatıldı.)'. |
Konuşma uzak tarafında TCP/IP bağlantı kabul, ancak bir ileti gönderilmesini önce bağlantıyı kapattı. |
(Yok) |
Service Broker henüz iletiyi göndermek çalıştı değil.If the enqueue_time column shows the message has been in the queue a long time, Service Broker message delivery might not be activated in the database. |
Sorun: Yol var, iletim durum hizmeti için yol gösterir.
Bu sorunun en yaygın nedenleri şunlardır:
İletinin başarıyla teslim etmek için hiçbir yol vardı, iletiyi oluşturulan send deyim.
yol Sonra oluşturulmuştur, ancak Service Broker henüz çalıştı yeniden gönderme ileti.
Yeniden deneme hakkında daha fazla bilgi için bkz: Yönlendirme ve ağ Hizmet Aracısı.
Ensure that the service name specified in the message exactly matches the service name specified in the route.Service Broker uses a byte-by-byte binary comparison to match service names.Hizmet adını belirtir bir yol varsa, aşağıdaki sorguyu çalıştırarak adları karşılaştırabilirsiniz:
SELECT N'No Exact Match' = tq.to_service_name
FROM sys.transmission_queue AS tq
WHERE NOT EXISTS
(SELECT remote_service_name
FROM sys.routes AS routes
WHERE tq.to_service_name = routes.remote_service_name) ;
Not
Bazı hizmet adlarını görünebilir sonuç küme olsa bir yol aynı.Bir hizmet adı belirtmeyen bir yol (remote_service_name = null) herhangi bir ileti ile kullanılan hizmet adı ile eşleşir.
Hizmet Aracısı yolları hakkında daha fazla bilgi için bkz: Yönlendirme Hizmet Aracısı.
Message broker örnek tanımlayıcısı belirtiyorsa, ya da doğrulamak yol aynı broker örnek tanımlayıcısı veya belirtir yol broker örnek tanımlayıcısı hiç belirtmiyor.
Bakın, yol sona erdi.Ömürsaat sütunu sys.routes Katalog görünümü, sona erme tarihni içerir ve saat yol için.
Sorun: Aktarım durumu gösterir hedef Hizmet Aracısı ulaşılamıyor
Hedef ileti kabul etmedi.Bu hizmetin adını belirtilen hizmet adıyla eşleşmiyor gösteriyor, hedef SQL Server örnek hosts.Hedef hizmet için bir yol içermeyen de gösterebilir.Bu sorunu gidermek için kontrol üretim ve hizmet yapılandırma hedef için.
Sorun: Aktarım Katmanı iletim durum kullanılamaz gösterir
Emin olun bir Service Broker Bitiş noktası yok.Bitiş noktası yoksa, bir tane oluşturun.Bir bitiş noktası yoksa, bitiş noktasının durumu BAŞLATILDIĞINI doğrulayın. Daha fazla bilgi için bkz: Hizmet Aracısı bitiş noktaları.Bir bitiş noktası oluşturma hakkında daha fazla bilgi için bkz: Nasıl yapılır: Hizmet Aracısı ağ (Transact-SQL) etkinleştir.
Sorun: "Varolan bir bağlantı zorla uzak ana bilgisayar tarafından kapatıldı" iletim durumunu gösterir.
Taşıma güvenliği yanlış yapılandırılmış, TCP/IP adresini veya yol başka bir hizmet tarafından kullanılan bir bağlantı noktasını belirtir Service Broker.
Not
The port specified in the route must correspond to the port that is used by the Service Broker endpoint on the remote instance of the Veritabanı Altyapısı.Service Broker uses the Service Broker communications protocols to transmit messages, not the Tabular Data Stream protocol that is used to transmit Transact-SQL batches and results.Bu nedenle, tarafından kullanılan bağlantı noktası bir Service Broker Bitiş noktası farklı bir bağlantı noktasından iletmek için kullanılan Transact-SQL.
Kontrol Service Broker , iki örneği var. uyumlu ağ güvenlik ayarlarını sağlamak için bitiş noktası yapılandırmaIf the Service Broker endpoint for one instance specifies REQUIRED or ENABLED, the Service Broker endpoint for the other instance cannot specify NONE.
Sertifikalar, kullanıcıların izinlerini denetleyip Service Broker taşıma güvenlik.Daha fazla bilgi için bkz: Hizmet Aracısı aktarım güvenliği.
Ayrıca bkz.