Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

SQL Broker Piotr Grodzicki. Princip Jedná se o asynchronní službu pro obousměrnou komunikaci Je integrovanou součástí SQL serveru Komunikace probíhá mezi.

Podobné prezentace


Prezentace na téma: "SQL Broker Piotr Grodzicki. Princip Jedná se o asynchronní službu pro obousměrnou komunikaci Je integrovanou součástí SQL serveru Komunikace probíhá mezi."— Transkript prezentace:

1 SQL Broker Piotr Grodzicki

2 Princip Jedná se o asynchronní službu pro obousměrnou komunikaci Je integrovanou součástí SQL serveru Komunikace probíhá mezi endpointy Obsah komunikace lze šifrovat Komunikuje se pomocí zpráv Zprávy dojdou pouze jednou a ve správném pořadí

3 Komponenty pro Service Broker Služba Konverzace Queue Service Contract Message Type Contract Service Program Begin Dialog Send Message End Conversation Service Program Receive Message Target Queue

4 Message Type Validace : NONE EMPTY WELL_FORMED_XML, VALID_XML WITH SCHEMA COLLECTION CREATE MESSAGE TYPE HelloWorldMessage VALIDATION = WELL_FORMED_XML ;

5 Contract CREATE CONTRACT HelloWorldContract (HelloWorldMessage SENT BY INITIATOR, HelloWorldResponse SENT BY TARGET);

6 Queue (fronta) CREATE QUEUE dbo.TargetQueue WITH STATUS = ON, ACTIVATION ( PROCEDURE_NAME = dbo.usp_HelloWorld MAX_QUEUE_READERS = 5, EXECUTE AS SELF ) ON PRIMARY;

7 Service (služba) CREATE SERVICE TargetService ON QUEUE dbo.TargetQueue (HelloWorldContract, HelloUniverseContract);

8 Konverzace jediná SQL Server Instance Service Program Begin Dialog Send Message End Conversation Service Program Receive Message Target Queue Různé SQL Server Instance Service Program Receive Message Target Queue Transmission Queue Service Program Begin Dialog Send Message End Conversation

9 Dialog BEGIN DIALOG CONVERSATION @conversationHandle FROM SERVICE InitiatorService TO SERVICE 'TargetService' ON CONTRACT HelloWorldContract;

10 Message (zpráva) SEND ON CONVERSATION @conversationHandle MESSAGE TYPE HelloWorldMessage (N' Hello, World! ');

11 Odesilatel DECLARE @conversationHandle UNIQUEIDENTIFIER ; BEGIN DIALOG CONVERSATION @conversationHandle FROM SERVICE InitiatorService TO SERVICE 'TargetService' ON CONTRACT HelloWorldContract; SEND ON CONVERSATION @conversationHandle MESSAGE TYPE HelloWorldMessage (N' Hello, World! ');

12 Příjemce DECLARE @variables… BEGIN TRANSACTION ; WAITFOR ( GET CONVERSATION GROUP @conversation_group_id FROM dbo.TargetQueue); WHILE 1 = 1 BEGIN RECEIVE TOP(1) @conversation_handle = conversation_handle, @message_type_name = message_type_name, @message_body = CAST(message_body AS XML) FROM dbo.TargetQueue WHERE conversation_group_id = @conversation_group_id ; IF @message_type_name = N'HelloWorldMessage‘ BEGIN SEND ON CONVERSATION @conversationHandle MESSAGE TYPE HelloWorldResponse (N' Right Back At You! ') END CONVERSATION @conversationHandle END END; COMMIT TRANSACTION ;

13 Příjem zpráv Příjem zprávy lze automatizovat pomocí uložené procedury – připojí se ke frontě Tato procedura může zajistit odeslání odpovědi Neúspěšné čtení zprávy –5 pokusů –Poté se zastaví fronta –Lze použít notifikaci

14 Děkuji za pozornost Piotr Grodzicki programátor databázový specialista grodzicki@stapro.cz


Stáhnout ppt "SQL Broker Piotr Grodzicki. Princip Jedná se o asynchronní službu pro obousměrnou komunikaci Je integrovanou součástí SQL serveru Komunikace probíhá mezi."

Podobné prezentace


Reklamy Google