Hizmet Aracısı hata iletileri işleme
Service Brokeruygulamaları iki tür gelen konuşmalara alınan hata iletileri el ile yapmanız gerekir: kullanan bir uygulama tarafından oluşturulan hata iletileri Service Broker ve sistem tarafından oluşturulan iletileri Service Broker.
Uygulama hata koşullarını raporlama
Service Broker genellikle farklı bilgisayarlarda zaman uyumsuz olarak çalışan kod oluşan sistemleri uygulamalardır.Uygulama bölümlerini gönderilen iletileri kullanılarak birbirleriyle Service Broker görüşmeleri.Bir tarafındaki uygulamanın bir bölümü bir Service Broker Görüşme uygulama hata raporu diğer tarafı hata iletileri göndererek. Kod hata iletisi algılamak ve düzgün bir şekilde işler hata koşulu. Alıcı uygulamanın parçası olmalıdır
Service Broker uygulama hataları ya da sistem tanımlı veya uygulama tanımlı ileti türleri kullanarak iletişim kurabilirsiniz.
Sistem tanımlı hata iletileri
end konuşma deyim konuşma bitiş gerektirecek ciddi uygulama hataları bildirmek için hata ile yan tümce tümce tümce kullanın.Örneğin:
END CONVERSATION @ConversationHandle
WITH ERROR = 1234 DESCRIPTION = "The account specified in the invoice does not exist, verify the account number."
HATA ile end konuşma deyim:
Oluşturduğu bir Service Broker sistem hata iletisi ve konuşma uzak tarafı için gönderir. Sistem tanımlı hata iletileri kullanmak https://schemas.microsoft.com/SQL/ServiceBroker/Error ileti türü.
Görüşmenin yerel tarafı sonlandırır.
Alan uygulamanın bir bölümü hata ileti tüm gerekli temizleme yapın ve kendi tarafında görüşme sona gerekir.
Bir uygulama bir hata ile etkin bir konuşma her saat sona erdirebilir.Ancak, konuşma uzak tarafında zaten konuşma sona erdi, Service Broker uzak tarafı hata iletisi gönderirBunun yerine, Service Broker yalnızca yerel yan Görüşmenin sona erer ve kaldırır tüm iletiler için konuşma yerel sıra.
Uygulama tanımlı hata iletileri
Uygulama tanımlı hata iletileri bir Konuşmayı sona erdirmek için ciddi hataları bildirmek için kullanabilirsiniz.Uygulama Tasarımcısı şunları belirtebilirsiniz:
Bu uygulama hataları iletişim kurmak için kullanılan bir veya daha fazla ileti türleri.
Bu ileti türlerini işleme mantığı.
Hata koşulu karşılaştığında uygulama parçası aşağıdakileri yapabilirsiniz:
Tüm gerekli temizleme işlemi yerel konuşma tarafı için gerçekleştirin.
Kullanarak uygulama tanımlı ileti oluşturmak ileti türü ve görüşmeyi gönderin.
Hata iletisi tanımak ve bağlantı tarafında tüm gerekli temizleme gerçekleştirmek için kod hata iletisini aldığında uygulama uzaktaki bir parçası olması gerekir.
Hata iletileri işleme
Uygulama kodu gelen iletileri almak Service Broker görüşmeler mantığı görüşme alınan hata iletileri işlemek için gerekirKod gerekir algılamak yapması ve aşağıdaki:
Uygulama tanımlı hata kullanan bir uygulama tarafından oluşturulan hata iletileri ileti türü.
end konuşma deyim hata ile yan tümce tümce tümce kullanan bir uygulama tarafından oluşturulan hata iletileri.Bu hata iletilerini kullanmak https://schemas.microsoft.com/SQL/ServiceBroker/Error ileti türü ve pozitif bir sayı olan inancınızı kod öğesi.
Tarafından oluşturulan hata iletileri Service Broker.Bu hata iletilerini kullanmak https://schemas.microsoft.com/SQL/ServiceBroker/Error ileti türü ve negatif bir sayı olan inancınızı kod öğesi. Service Broker oluşturur bir hata iletisi hatayla olanaksız kılmaktadır, Service Broker için devam konuşma.Örneğin, Service Broker hedef hizmet hizmet geçerli örneğinde yoktur ve yönlendirme hizmet için giriş yoktur çünkü bulamıyor tablo.Bu durumda, Service Broker oluşturur bir hata ileti görüşmesi.
Al deyim tarafından döndürülen sonuç küme içeren bir message_type_name sütun.Alan kodu Service Broker iletileri genellikle kullandığı message_type_name için yol ilişkili ileti türü her iletinin kodunu işler.
Hatayı işlemek için bir program tam mantığı takip uygulamasına bağlıdır.İleti saklama kullanır ve görev başarısız olduğunda hareketleri karşılayan gerektiren bir program bir örnektir.Bir hata alındığında, program sıra zaten işlendi, karşılayan hareketleri yapar ve sonra görüşme iletileri için sorgular.Program yalnızca bir hata oluştu kayda sahiptir, buna karşılık, program hata oturum bir günlüğe tablo ve görüşme sona erer.
The Code element of the https://schemas.microsoft.com/SQL/ServiceBroker/Error message contains the error code.Hata hata ile son konuşma kullanan bir uygulama tarafından oluşturulan iletiler hata kodu için pozitif bir değer olması.Hata tarafından üretilen iletileri Service Broker içeren negatif değerler için hata kodu.The Code value in messages generated by Service Broker is just the negated value of the error that caused the Error message.Örneğin, bir xml doğrulama hata (hata kodu 9615) ortaya çıktığında, Veritabanı Altyapısı oluşturur bir hata olan ileti bir kod değeri içeren öğe -9615.
Bir uygulama aldıktan sonra bir hata ileti, program artık ileti göndermek o konuşma.Uygulama hata işleme ve yan Görüşmenin sona erer.Bir uygulama, uygulama tanımlı bir hata alırsa, ileti türü, uygulamanın uzak bir parçası da son görüşme bitti sürece konuşma hala kullanılabilir.
Hata işleme yordamları zarar iletileri engellemek için böyle bir yolla kodlanmış olmalıdır.Daha fazla bilgi için bkz: Poison iletileri işleme.