sql - 如何配置 BizTalk WCF-SQL 适配器以从 SQL Server 2012 "always on"副本数据库获取数据?

标签 sql sql-server wcf biztalk biztalk-2013

我们有一个客户端将使用 SQL Server 2012 的 AlwaysOn 可用性功能。 他们希望将 BizTalk WCF-SQL 端口连接到只读副本。

documentation在主题上说必须连接到 SQL Server 2012 可用性组监听器,并且连接必须能够设置“ApplicationIntent”参数。这会告诉 SQL 监听器该连接是一个只读意图连接,它应该被重定向到一个可读的辅助副本。如果没有这个工作,将与主数据库建立连接,这不是我们想要的。

如何在 BizTalk WCF-SQL 适配器上配置“ApplicationIntent”参数?

最佳答案

无法通过 WCF-SQL 适配器执行此操作。 我们不得不使用外部帮助程序类来使用连接字符串创建连接并查询数据库。

更新:一位同事就此问题撰写的博客 Can I use a BizTalk WCF-SQL send adapter with a SQL 2012 Always on Database?下面引用了一个片段。

总而言之,我认为您的选择是(按优先顺序):

  • 如果您需要连接到已启用此功能的 SQL 服务器,请在 SQL 服务器上禁用 AlwaysOn 可用性组/镜像

  • 禁用事务并实现能够处理重复项的逻辑。

  • 禁用事务并使用自定义逻辑处理重复或丢失的消息(例如发送两次并比较并实现错误处理)。您需要编写自己的 DTC 来处理这可能非常复杂。

  • 禁用事务并在不处理重复项的情况下承受重复或丢失消息的风险。

关于sql - 如何配置 BizTalk WCF-SQL 适配器以从 SQL Server 2012 "always on"副本数据库获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20644569/

相关文章:

sql-server - SQL脚本到 "copy"数据库

sql - 将列添加到 SQL Server 数据库中的表并使用案例设置默认值

wcf - SqlRoleProvider:调用 Roles.GetRolesForUser 时出现 NullReferenceException

c# - 从 WCF 中获取一个大的 List<T> block ?

try-with-resources 中的 Java 准备语句不起作用

mysql - 在sql表中查找最大值

sql - 如何将多个查询优化为单个查询

sql - Oracle SQL添加多行表注释或列注释

用于随机填充行的MySql过程仅填充一行

asp.net - Web.config 中运行时部分的用途