4

这是我第一次使用 BizTalk 进行跨机器、异步、可靠的通信。
我想知道有没有办法直接将消息从一台机器发送到 BizTalk 队列,或者我必须使用本地 MSMQ 反过来将消息发送到 BizTalk?

在 C# 中,是否有用于将消息发送到 BizTalk 队列的绑定?
对于 MSMQ,我知道有 NetMsmqBinding。

干杯

更新:

由于我引入了一些混乱,我将尝试解释一下,如果我错了,请纠正我。
据我所知,ESB 实现了队列或消息通道的概念,可用于可靠的异步通信(简称消息传递)。现在,我很难将 BizTalk 纳入这个概念。对于 ESB 概念有几十种解释,对于 BizTalk 是否是 ESB(如 Sonic 或 TIBCO)有许多意见。
现在,据我所知,例如在实现 JMS API 的 TIBCO 中,没有队列或排队本地客户端计算机(例如 MSMQ)上的服务,但它们在 TIBCO ESB 上存在并配置,并且从客户端应用程序我使用 JMS API 将消息发送到这些队列。
因此,当我想通过 BizTalk 与不同机器上的应用程序进行通信并且我想使用消息传递时,我将在本地机器上使用 MSMQ,MSMQ 会将这些消息传输到 BizTalk 和下游的其他应用程序?
另外,我应该在哪里配置本地 MSMQ 和 BizTalk 之间的通信?我应该将 BizTalk 配置为侦听给定的 MSMQ 以获取新消息,还是应该在 MSMQ 本身上进行一些配置?

4

3 回答 3

5

BizTalk 通过称为适配器的人工制品与外部世界进行通信,它可以通过各种消息传递协议提供对外部世界可见的端点。

有一个 MSMQ 适配器,它似乎能够从本地计算机或远程计算机上的队列中读取和发布。我从来没有使用过它,所以我是从阅读这个适配器上的文档开始的,并在我进行过程中发现。我发现 BizTalk 文档特别难以导航,尤其是现在很多微软链接都没有,特别是 - 找到我提到的这些页面需要一些时间。如果您发现任何不明显的事情,请告诉我,因为我确信有一些有用的资源我从未找到过。

要将 BizTalk 配置为侦听队列:

  • 创建单向接收端口
  • 创建与该端口关联的单向接收位置
  • 将接收位置的传输类型设置为“MSMQ”
  • 点击“配置”
  • 指定要使用的凭据和队列名称(包括机器名称,这意味着它同样适用于远程队列)
  • 根据您的方案适当地设置其他属性

应该就是它的全部了。然后,发布到该队列应该会导致在该端口上接收到一条消息,该端口会立即将其保存到消息框数据库中。您必须使用管道和/或映射进行一些处理才能对消息执行任何有用的操作。

但是,您绝不限于 MSMQ。提供了一个非常全面的列表,并且 BizTalk 不会限制您使用任何特定的消息传递协议。您还可以实现具有您需要的任何行为的自定义适配器。为了更有效地回答您的问题,了解您的真正需求是有帮助的 - 例如,客户端应用程序的用例是什么?

于 2013-04-08T20:15:29.613 回答
1

BizTalk 以端口的概念运行 - 接收和发送。这些端口利用许多不同的技术来读取和写入消息,但没有一个是与其他 BizTalk Server 的直接通信。您将需要利用 MSMQ 之类的东西,甚至是基本的 Web 服务 - 这取决于您 - 但您需要在两者之间使用某种通信协议。

于 2013-04-08T20:15:17.753 回答
0

“另外,我应该在哪里配置本地 MSMQ 和 BizTalk 之间的通信?我应该将 BizTalk 配置为侦听给定的 MSMQ 以获取新消息,还是应该在 MSMQ 本身上进行一些配置?”

答:您需要将 BizTalk 配置为以定义的时间间隔轮询相应的队列(可以在 BizTalk 中配置)。在 MSMQ 中,您需要向将在轮询队列时使用的用户帐户授予访问权限。

于 2013-11-30T22:09:40.183 回答