使用 BizTalk Server 从 SQL 接收跨多个接收端口的轮询消息
假设你想要创建包含两个轮询操作的 BizTalk 应用程序。 每个轮询操作都会从同一数据库中轮询单独的表(Employee 和 Customer)。 在 BizTalk Server 管理控制台中部署此类应用程序时,需要创建两个接收端口。 每个接收端口的连接 URI 将为:
mssql://<server_name>/<database_instance_name>/<datbase_name>
由于两个接收端口都从同一服务器上的同一数据库接收轮询消息,因此这两个端口的连接 URI 将相同。 但是,BizTalk 应用程序不能有两个具有相同连接 URI 的接收端口。
为了使适配器客户端能够有两个接收端口轮询同一数据库 (甚至 BizTalk 应用程序中数据库) 中的同一表,SQL 适配器提供连接属性 InboundID。 可以为此连接属性指定任何值。 通过添加入站 ID,连接 URI 将变得唯一。 例如:
接收 Employee 表轮询消息的端口的连接 URI 可以是:
mssql://<server_name>/<database_instance_name>/<datbase_name>?InboundID=Employee
同样,接收客户表轮询消息的端口的连接 URI 可以是:
mssql://<server_name>/<database_instance_name>/<datbase_name>?InboundID=Customer
由于连接 URI 通过添加 InboundID 属性变得唯一,因此现在可以让多个接收端口在单个 BizTalk 应用程序中轮询同一数据库或表。
重要
可以选择为轮询和 TypedPolling 操作指定 InboundID 连接属性。