हमारे पास मेरी कंपनी में एक समान कार्य था और यह पता लगाया गया कि बाहरी एक्टिवेटर के साथ एसिंक्रोनस ट्रिगर्स का उपयोग करने का एक इष्टतम समाधान था जो सफल कॉल के बाद .NET और de-queues संदेशों से webservices को कॉल करता था। यह माप क्या है कि आप एक नियमित डेटाबेस ट्रिगर बनाते हैं जो एसिंक्रोनस प्रोसेसिंग के लिए सेवा ब्रोकर कतार में एक संदेश भेजता है। एकेए असिंक्रोनस ट्रिगर। यहाँ Klause की किताब
-- Create the trigger written with T-SQL
CREATE TRIGGER OnCustomerInserted ON Customers FOR INSERT
AS
DECLARE @conversationHandle UNIQUEIDENTIFIER
DECLARE @fromService SYSNAME
DECLARE @toService SYSNAME
DECLARE @onContract SYSNAME
DECLARE @messageBody XML
SET @fromService = 'CustomerInsertedClient'
SET @toService = 'CustomerInsertedService'
SET @onContract = 'http://ssb.csharp.at/SSB_Book/c10/CustomerInsertContract'
-- Check if there is already an ongoing conversation with the TargetService
SELECT @conversationHandle = ConversationHandle FROM SessionConversations
WHERE SPID = @@SPID
AND FromService = @fromService
AND ToService = @toService
AND OnContract = @onContract
IF @conversationHandle IS NULL
BEGIN
-- We have to begin a new Service Broker conversation with the TargetService
BEGIN DIALOG CONVERSATION @conversationHandle
FROM SERVICE @fromService
TO SERVICE @toService
ON CONTRACT @onContract
WITH ENCRYPTION = OFF;
-- Create the dialog timer for ending the ongoing conversation
BEGIN CONVERSATION TIMER (@conversationHandle) TIMEOUT = 5;
-- Store the ongoing conversation for further use
INSERT INTO SessionConversations (SPID, FromService, ToService, OnContract, ConversationHandle)
VALUES
(
@@SPID,
@fromService,
@toService,
@onContract,
@conversationHandle
)
END
-- Construct the request message
SET @messageBody = (SELECT * FROM INSERTED FOR XML AUTO, ELEMENTS);
-- Send the message to the TargetService
;SEND ON CONVERSATION @conversationHandle
MESSAGE TYPE [http://ssb.csharp.at/SSB_Book/c10/CustomerInsertedRequestMessage] (@messageBody);
इसके बजाय संग्रहित प्रक्रियाओं जो प्रबंधित कोड (आंतरिक सक्रियण) हमने तय किया है कि यह SQL सर्वर के बाहर है कि प्रसंस्करण ऑफलोड करने के लिए बेहतर है के माध्यम से वेब सेवाओं कहेंगे का उपयोग करने का
के 10 अध्याय से एक नमूना है। और माइक्रोसॉफ्ट द्वारा निर्मित यह अच्छा छोटा टूल मिला - External Activator जो सक्रियण कतार को सुनेंगे और कतार में एक नया संदेश होने पर एक एप्लिकेशन लॉन्च करेगा। कार्यान्वयन के लिए कृपया पुस्तक में क्लाउस के अध्याय 4 का संदर्भ लें।
हाय, आपके नोट्स के लिए धन्यवाद। मैंने उदाहरण को देखा। यह सेवा ब्रोकर आधारभूत संरचना के भीतर एक वेब servie के आह्वान के बारे में है। मुझे वास्तव में क्या चाहिए: पंक्ति तालिका में डाला/अपडेट किया गया -> ट्रिगर आग डालें/अपडेट करें -> ट्रिगर सेवा ब्रोकर कतार में संदेश लिखता है -> एसक्यूएल सर्वर द्वारा संग्रहीत संग्रहित प्रो -> संग्रहीत प्रो कॉल वेब सेवा -> वार्तालाप समाप्त होता है। कोई उपाय? एसकब्स – user409679