你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在 Azure 逻辑应用中从工作流连接到 IBM MQ 服务器

借助 MQ 连接器,你可以将逻辑应用工作流连接到本地或 Azure 中的 IBM MQ 服务器。 之后,便可让工作流接收和发送存储在 MQ 服务器中的消息。 本文通过介绍如何连接到 MQ 服务器以及向工作流添加 MQ 操作,提供了 MQ 连接器入门使用指南。 例如,可以首先浏览队列中的一条消息,然后尝试其他操作。

此连接器包含一个通过 TCP/IP 网络与远程 MQ 服务器通信的 Microsoft MQ 客户端。 你可以连接到以下 IBM WebSphere MQ 版本:

  • MQ 7.5
  • MQ 8.0
  • MQ 9.0、9.1 和 9.2

可用操作

  • 消耗量逻辑应用:仅可使用托管 MQ 连接器连接到 MQ 服务器。 此连接器仅提供操作,而不提供触发器。

  • 标准逻辑应用:可以使用托管 MQ 连接器(其中仅包括操作)或内置的 MQ 操作(包括触发器和操作)连接到 MQ 服务器。

有关托管连接器与内置操作之间的差异的详细信息,请查看逻辑应用中的关键术语

下表仅介绍了可用于 MQ 的部分托管操作:

  • 浏览单条消息或一组消息,但不从 MQ 服务器中将其删除。 对于多条消息,可以指定每批返回的最大消息数量。 否则,将返回所有消息。
  • 从 MQ 服务器中删除单条消息或一组消息。
  • 接收单条消息或一组消息,然后从 MQ 服务器中将其删除。
  • 将单条消息发送到 MQ 服务器。

有关所有托管连接器操作和属性、限制等其他技术信息,请查看 MQ 连接器的参考页

限制

  • MQ 连接器不支持分段消息。

  • MQ 连接器不使用消息的 Format 字段,也不执行任何字符集转换。 连接器仅将出现在消息字段中的所有数据放入 JSON 消息中,然后将其发送出去。

先决条件

  • Azure 帐户和订阅。 如果没有 Azure 订阅,请注册一个免费 Azure 帐户

  • 如果使用本地 MQ 服务器,则在网络中的服务器上安装本地数据网关。 要使 MQ 连接器正常工作,使用本地数据网关的服务器还需要安装 .NET Framework 4.6。

    安装网关后,还需要在 Azure 中创建数据网关资源。 MQ 连接器使用此资源来访问 MQ 服务器。 有关详细信息,请查看设置数据网关连接

    注意

    下列情况无需网关:

    • 你将使用内置操作,而不使用托管连接器。
    • MQ 服务器公开可用或在 Azure 中可用。
  • 要在其中访问 MQ 服务器的逻辑应用工作流。 逻辑应用资源必须与 Azure 中的网关资源位于同一位置。

    MQ 连接器没有任何触发器,因此工作流必须已经使用触发器启动,或者你首先必须向工作流添加触发器。 例如,可以使用定期触发器

    如果不熟悉 Azure 逻辑应用,请尝试此快速入门:创建示例逻辑应用工作流,该工作流在多租户逻辑应用服务中运行。

创建 MQ 连接

首次添加 MQ 操作时,系统会提示你创建 MQ 服务器连接。

注意

MQ 连接器目前仅支持服务器身份验证,不支持客户端身份验证。 有关详细信息,请参阅连接和身份验证问题

  1. 如果要连接到本地 MQ 服务器,请选择“通过本地数据网关连接”。

  2. 提供 MQ 服务器的连接信息。

    属性 本地或 Azure 说明
    网关 仅限本地 选择“通过本地数据网关连接”。
    连接名称 推送、请求和匿名 要为你的连接使用的名称
    Server 推送、请求和匿名 使用以下值之一:

    - MQ 服务器主机名
    - IP 地址,后跟冒号和端口号

    队列管理器名称 推送、请求和匿名 要使用的队列管理器
    频道名称 推送、请求和匿名 连接到队列管理器的通道
    默认队列名称 推送、请求和匿名 队列的默认名称
    连接身份 推送、请求和匿名 用于连接到 MQ 服务器的用户名
    用户名 推送、请求和匿名 用户名凭据
    密码 推送、请求和匿名 密码凭据
    启用 SSL? 仅限本地 使用传输层安全性 (TLS) 或安全套接字层 (SSL)
    网关 - 订阅 仅限本地 与 Azure 中的网关资源关联的 Azure 订阅
    网关 - 连接网关 仅限本地 要使用的网关资源

    例如:

    Screenshot showing the managed MQ connection details.

  3. 完成操作后,选择“创建”。

添加 MQ 操作

在 Azure 逻辑应用中,操作会紧跟触发器或另一个操作,并在工作流中执行某些操作。 以下步骤介绍了添加操作(例如“浏览单条消息”)的一般方法。

  1. 在逻辑应用设计器中,打开工作流(如果尚未打开)。

  2. 在触发器或另一操作下,添加一个新步骤。

    若要在现有步骤之间添加一个步骤,请将鼠标移到箭头上方。 选择出现的加号 (+),然后选择“添加操作”。

  3. 在操作搜索框中,输入 mq。 从操作列表中选择名为“浏览消息”的操作。

  4. 如果系统提示你创建 MQ 服务器连接,请提供所需的连接信息

  5. 在操作中,提供操作所需的属性值。

    如需更多属性,请打开“添加新参数”列表,然后选择要添加的属性。

  6. 完成后,请在设计器工具栏上选择“保存”。

  7. 若要测试工作流,请在设计器工具栏中选择“运行”。

    运行完成后,设计器会显示工作流的运行历史记录以及步骤状态。

  8. 若要查看已运行(未跳过)的每个步骤的输入和输出,请展开或选择该步骤。

    • 若要查看更多输入详细信息,请选择“显示原始输入”。
    • 若要查看更多输出详细信息,请选择“显示原始输出”。 如果将 IncludeInfo 设置为 true,则会包含更多输出。

排查问题

浏览或接收操作失败

如果对空队列运行浏览或接收操作,该操作将失败,并出现以下标头输出:

MQ

连接和身份验证问题

当工作流尝试连接到本地 MQ 服务器时,可能会出现以下错误:

"MQ: Could not Connect the Queue Manager '<queue-manager-name>': The Server was expecting an SSL connection."

  • 如果你直接在 Azure 中使用 MQ 连接器,则 MQ 服务器需要使用一个由受信任的证书颁发机构颁发的证书。

  • MQ 服务器要求你定义要用于 TLS 连接的密码规范。 但是,出于安全考虑,也是为了提供最佳安全套件,Windows 操作系统会发送一组受支持的密码规范。

    运行 MQ 服务器的操作系统会选择要使用的套件。 若要使配置匹配,你必须更改 MQ 服务器设置,使密码规范与 TLS 协商中所选的选项匹配。

    当你尝试连接时,MQ 服务器记录一条事件消息,指出连接尝试失败,因为 MQ 服务器选择了错误的密码规范。 该事件消息包含 MQ 服务器从列表中选择的密码规范。 更新通道配置中的密码规范,以匹配事件消息中的密码规范。

连接器参考

有关托管连接器中的所有操作以及属性、限制等其他技术信息,请查看 MQ 连接器的参考页

后续步骤