如何配置BizTalk WCF-SQL适配器以从SQL Server 2012“永远在线”副本数据库获取数据?

时间:2013-12-17 21:01:11

标签: sql sql-server wcf biztalk biztalk-2013

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

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

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

3 个答案:

答案 0 :(得分:1)

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

更新:由同事撰写的关于Can I use a BizTalk WCF-SQL send adapter with a SQL 2012 Always on Database?问题的博客,下面引用了一段摘录。

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

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

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

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

  • 在不处理重复项的情况下,禁用交易并承担重复或丢失邮件的风险。

答案 1 :(得分:0)

我认为您需要使用WCF-Custom + sqlBinding来指定连接字符串。

答案 2 :(得分:-1)

在您提供的链接中,他们在连接字符串中执行了此操作。看看里面的最后一项:

Server=tcp:AGListener,1433;Database=AdventureWorks;
IntegratedSecurity=SSPI;ApplicationIntent=ReadOnly

看起来很容易......