我们有一个客户端将使用SQL Server 2012的AlwaysOn可用性功能。他们希望将BizTalk WCF-SQL端口连接到只读副本。
关于该主题的文档说必须与SQL Server 2012可用性组侦听器建立连接,并且该连接必须能够设置“ pplicationIntent”参数。这告诉SQLListener,该连接是只读的意图连接,应将其重定向到可读的辅助副本。没有该工作,将建立到不需要的主数据库的连接。
如何在BizTalk WCF-SQL适配器上配置“ pplicationIntent”参数?
无法通过WCF-SQL适配器执行此操作。我们必须使用外部帮助程序类来创建带有连接字符串的连接并查询数据库。
更新:一位同事撰写的有关此问题的博客我可以将BizTalk WCF-SQL发送适配器与SQL 2012 Always on数据库一起使用吗?下面引用的摘录。
总而言之,我认为您的选择是(按优先顺序排列):
如果您需要连接到启用了此功能的此SQL Server,请在SQL Server上禁用AlwaysOn可用性组/镜像
禁用事务并实现逻辑以能够处理重复项。
禁用事务并使用自定义逻辑处理重复项或丢失的消息(例如,发送两次并比较并实施错误处理)。您需要编写自己的DTC来处理此问题,这可能非常复杂。
禁用交易并承担重复或丢失消息的风险,而不处理重复项。