本主题介绍如何配置通过 MQ 传输发送和接收消息的消息代理。章节目录:

MQ 前提条件

Jar 文件

请参阅将必要的 jar 文件添加到 Classpath

队列分配

当通过队列交换通讯报文时,我们假设客户端应用程序向目标队列发送请求,而服务器应用程序从队列接收消息。然后,服务器将回复消息发送到第二个队列,供客户端接收。在这种情况下,消息代理充当客户端和服务器之间的“中间人”,这需要在消息提供者上添加两个队列,以促进调解。Parasoft 代理从客户端放置消息的位置接收消息,记录消息内容(如果启用了记录功能),然后将消息放到服务器将接收它的队列中。类似地,服务器将消息发送到一个队列,代理进行接收并录制(如果启用了录制功能),然后将它放回客户端期待回复响应的队列中。

因此,需要分配两个额外的队列,其中之一是:

只需要修改两个应用程序队列中的一个。

指定 MQ 设置

有关如何在不同场景中配置录制的提示,请参阅配置录制的队列

指定 MQ 设置,如下所示:

  1. 在代理连接设置对话框中选择 MQ 作为代理类型。
     
  2. 如果您在此面板中定义客户端和服务器队列(而不是像Using Global Queue Managers中所述,引用之前定义的队列管理器),请在本地设置区域中输入服务器详细信息。

    如果要在单个代理中配置与不同队列管理器的连接(例如,要让特定代理连接使用部署在两个不同队列管理器上的两个队列),请为要使用的每个队列创建一个全局队列管理器,然后在配置代理时选择相应的队列管理器。

  3. 指定客户端和服务端队列。您可以在此面板中输入每个连接的设置(通过本地设置选项),或者引用在服务器级别定义的全局队列管理器(详情请参阅Using Global Queue Managers)。 

    您可以在 Virtualize 服务器上定义一个 MQ 队列,其中包括服务器连接选项卡中的 SSL 配置,并通过从菜单中选择全局队列管理器将设置应用到代理。本地设置配置中不支持 SSL 配置。

  4. 如有需要,请修改使用 replyToQueueName响应设置。该选项指定是否使用消息的 replyToQueueName 头来确定代理发送响应的位置。它影响 MQMT_REQUEST 类型的 MQ 消息的响应。
  5. 如果需要,请修改线程数设置。

    每个工作线程创建自己到 MQ 提供者的连接。例如,对于 Mq,如果您有 20 个工作线程,则您的 WebSphere MQ Explorer 应该在消息代理正在监听的请求(get)队列的 Open input count 列中显示值 20。当部署/重新部署代理时,工作线程计数高于默认值 1,则应该在控制台中看到类似“已启用 x 监听器”这样的消息(其中 x 是配置的工作线程数量)。 

    增加工作线程数量可以帮助提高并发下的性能。代理的整个消息处理链都是并行的,因此每个工作线程都会与其他线程并行处理消息关联、响应消息生成等工作。但是,需注意,如果提供了较高的工作线程数量,部署/取消部署/重新部署代理将花费更长的时间,因为要创建/销毁的连接更多。此外,MQ 基础设施可能对允许多少并发连接有限制。不应该超过基础设施配置/允许的范围。 

    线程数特性相当于 Tomcat server.xml 中的 maxThreads 属性。server.xml 文件位于 <INSTALL-DIR>/plugins/com.parasoft.ptest.libs.web_<VERSION>/root/tomcat/conf/在使用大量并发虚拟用户时(例如,在负载测试期间),通常可以通过增加这些值来提高性能。

  6. 如果不使用全局队列管理器队列管理器,请在本地设置区域中指定连接细节。可以选择以下模式:

如果使用默认模式,请填写以下字段:

选项说明
主机指定运行 IBM MQ 的主机名。
端口指定运行 IBM MQ 的端口。
通道指定服务端定义的通道的名称。
队列管理器指定队列管理器的名称。
用户名/密码如果需要,请输入。

如果使用 CCDT 模式,请填写以下字段:

本地服务器


远程服务器

选项说明
CCDT 文件

指定 CCDT 文件的位置(扩展名为 .tab)。 

如果代理部署在远程服务器上,请使用文本字段指定 CCDT 文件的相对路径,因为它将出现在服务器树中的“文件”节点下。

如果代理部署在本地服务器上,则可以使用文件系统或工作空间按钮浏览到文件的位置。如果您正在配置当前部署在本地服务器上但稍后将部署在远程服务器上的代理,则需要在将代理部署到远程服务器之前将 CCDT 文件部署到远程服务器。请参阅在远程服务器和本地计算机之间传输文件

队列管理器指定队列管理器的名称。
用户名/密码如果需要,请输入。

配置 MQ CCSID

在大多数情况下,默认的 CCSID Virtualize 用于连接到 MQ 队列管理器是可以接受的。但是,如果将 MQ 队列管理器配置为使用不同的 CCSID,则会通知您队列管理器不支持 CCSID。

您可以在 JVM 参数中设置以下系统属性,以更改用于连接 MQ 队列管理器的默认 CCSID:

parasoft.mq.environment.ccsid=<CCSID>

您设置的 CCSID 取决于队列管理器的 CCSID 以及 JVM 支持哪些字符集。

还请参阅其他首选项设置 

使用全局队列管理器

跨特定 Virtualize 服务器应用的全局队列管理器设置可以在服务器级别定义,然后在这里引用。  详情请参阅连接选项卡。若要使用全局队列管理器,请从相应队列框中选择。使用命名规范列出 MQ 服务器主机名:队列管理器名

若要查看预定义的全局队列管理器的详情,请点击查看设置。 

队列配置技巧

有关如何在不同场景中配置队列的提示,请参阅配置录制的队列