Can you/should you use SQL Server Service Broker with .NET applications?

后端 未结 3 534
不思量自难忘°
不思量自难忘° 2021-01-31 19:32

I have many operations in the database that need to trigger application code. Currently I am using database polling, but I hear that SQL Server Service Broker can give me MSMQ-l

3条回答
  •  刺人心
    刺人心 (楼主)
    2021-01-31 20:06

    SSB (SQL Service Broker) has a feature named Activation that enabled a stored procedure to be attached to a queue. SQL Server will run this procedure internally when there are messages to consume in a queue. The queue attached procedure can be a CLR procedure, enabling for managed code business logic modules to run (C#, VB.Net etC).

    An alternative to an internal activated stored procedure is to have an external client 'listen' on a queue with a WAITFOR(RECEIVE ... ) statement. This syntax is special for SSB and does a non-pooling block until there are messages to receive. Applications then consume the received messages as an ordinary T-SQL result set (like a SELECT). There is also a sample of an External Activator for Service Broker that leverages the event notification mechanism to know when to start an application for consuming messages from a queue.

    If you want to see a sample of T-SQL code that leverages SSB internal Activation check out Asynchronous procedure execution.

提交回复
热议问题