【问题标题】:BizTalk WCF-SQL Receivelocation Notification callback returned an errorBizTalk WCF-SQL 接收位置通知回调返回错误
【发布时间】:2017-07-11 07:58:01
【问题描述】:

我正在尝试让 SQL 通知与 BizTalk 一起使用,但我正在努力一点。

Receivelocation的绑定如下:

SQL Server 支持通知,连接字符串正确。

当我启动 Receivelocation 时,它以正确的方式运行一次,但是当我禁用它并再次启动它时,我在事件日志中收到以下错误。

  • 消息引擎未能添加接收位置 带有 URL 的“RL.MDM.SQL” “mssql://.//Database?InboundId=GetNewMDMChanges”到适配器 “WCF-SQL”。原因: “Microsoft.ServiceModel.Channels.Common.TargetSystemException: 通知回调返回错误。信息=无效。 来源=声明。类型=订阅。

在我对数据库执行以下命令以启用代理之前,我无法再次启动接收位置。

alter database MDMDEV set enable_broker with rollback immediate;

这里奇怪的是,当我在执行上述命令之前检查代理是否仍然启用时,我看到代理确实仍然处于启用状态。

因此,启用代理的命令可以解决我的问题,而这恰好是另一个通知,而我必须再次执行此操作。

有没有人遇到过这个问题或者可以告诉我我做错了什么? 提前致谢。

【问题讨论】:

    标签: sql wcf notifications biztalk receive-location


    【解决方案1】:

    关于一般通知功能,我的建议是不要使用它

    对于 SQL Server 和 Oracle,通知功能非常脆弱,将停止接收事件而不会发出警告或错误。发生这种情况时,唯一的恢复方法是禁用/启用接收位置。

    基本上,我发现它不够可靠,无法在生产应用中使用。

    如果您或您的组织拥有数据库,则轮询 [+ Triggers if needed] 是 100% 可靠的。

    本文介绍了一些不同的 Polling 场景:BizTalk Server: SQL Patterns for Polling and Batch Retrieve

    【讨论】:

    • 你有一个很好的选择来跟上数据库的变化而无需轮询?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-22
    • 2012-08-11
    • 2012-06-30
    • 2018-12-29
    • 1970-01-01
    • 2018-10-03
    • 2018-10-07
    相关资源
    最近更新 更多