目前我们正在使用服务代理来回发送消息,这是正常的.但我们希望使用RELATED_CONVERSATION_GROUP对这些消息进行分组.我们希望用我们自己的数据库,从我们的数据库坚持UUID作为RELATED_CONVERSATION_GROUP = @uuid,但即使我们使用相同的UUID每次conversion_group_id每次我们收到的排队时间来不同.
你们知道我创建经纪人或接听电话的方式有什么问题,我提供了下面的经纪人创建代码和接收电话代码.谢谢
下面是代码"Service Broker创建代码"
CREATE PROCEDURE dbo.OnDataInserted
@EntityType NVARCHAR(100),
@MessageID BIGINT,
@uuid uniqueidentifier,
@message_body nvarchar(max)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @conversation UNIQUEIDENTIFIER
BEGIN DIALOG CONVERSATION @conversation
FROM SERVICE DataInsertSndService
TO SERVICE 'DataInsertRcvService'
ON CONTRACT DataInsertContract
WITH RELATED_CONVERSATION_GROUP = @uuid;
SEND ON CONVERSATION @conversation
MESSAGE TYPE DataInserted
(CAST(@message_body))
Run Code Online (Sandbox Code Playgroud)
下面是代码"接收代码"
WHILE 0 < @@TRANCOUNT ROLLBACK; SET NOCOUNT ON
BEGIN TRANSACTION;
DECLARE
@cID as uniqueidentifier,
@conversationHandle as uniqueidentifier,
@conversationGroupId as uniqueidentifier,
@tempConversationGroupId as uniqueidentifier,
@message_body VARBINARY(MAX)
RAISERROR ('Awaiting Message ...', …
Run Code Online (Sandbox Code Playgroud) 我是Service Broker的新手.我们已经建立了一个似乎运作良好的开发系统.
我注意到的一件奇怪的事情是,Service Broker每端的审计表中的会话句柄对于同一消息是不同的.我假设发起者和目标结束时会使用相同的会话句柄,所以我想知道我们是否配置错误.
单个消息在会话的每一端都有不同的会话句柄是否正常?