Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Published by Scroll Versions from space FUNCTDEV and version SOAVIRT_9.10.6_CTP_3.1.2

本主题解释如何配置通过 本主题解释了如何配置通过 MQ 传输发送和接收消息的消息代理(和记录代理)。
本章包含:

...

  1. 在 Proxy Connection Settings 对话框中选择 MQ 作为 Proxy Type

     
     
  2. 如果你在此面板中定义客户机和服务器队列(而不是像 如果您在此面板中定义客户机和服务器队列(而不是像 Using Global Queue Managers中描述的那样引用以前定义的队列管理器),请在本地设置区域中输入服务器详细信息。

    Info
    iconfalse
    title在一个代理中使用多个队列管理器

    如果你想配置连接到不同的队列管理器在一个代理(例如,你想要一个特定的代理连接使用部署在两个不同的两个队列,队列管理器),请为你想要使用的每个队列创建一个全局队列管理器,然后选择适当的队列管理器配置代理。如果您想配置连接到不同的队列管理器在一个代理(例如,您想要一个特定的代理连接使用部署在两个不同的两个队列,队列管理器),请为您想要使用的每个队列创建一个全局队列管理器,然后选择适当的队列管理器配置代理。

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



    • "put” 队列始终是 AUT/client 放置/发送请求消息的地方。"get” 队列是 client/AUT 获得响应消息的地方。

    • Virtualize 将捕获发送给客户端 Put 队列的请求消息,然后将其转发到服务器 Put 队列,以进行处理。服务器 Get 队列是服务器将在其上放置响应消息的队列(处理请求消息之后)。Virtualize 将捕获消息并将其转发至客户端 Get 队列。
    • 当消息代理启动时,它将创建两个侦听器。在客户端 put 队列上创建一个侦听器;这一个从客户机 Put 队列中获取消息,并将它们放在服务器 Put 队列中。在服务器 Get 队列上启动第二个侦听器;它将消息从服务器 Get 队列移动到客户机 Get 队列。
    • 如果希望自定义代理打开队列或将消息放入服务器 put 队列时使用的选项标志,可以在启动 Virtualize 时指定 JVM 系统属性 parasoft.proxy.mq.put.open.options and parasoft.proxy.mq.put.options 。例如,假设消息包含 MQMD 数据头 putApplicationName 的自定义值。在队列打开选项上设置 MQOO_SET_ALL_CONTEXT 标志,以及在 put 选项上设置 MQPMO_SET_ALL_CONTEXT 标志,将允许消息代理转发定制的 putApplicationName 数据头值。

      有关选项标志值,请参阅 IBM mq_queue_get_open_options 和 mq_message_put_options 参数。例如:

      Code Block
      virtualize.exe -J-Dparasoft.proxy.mq.put.open.options=2052 -J-Dpara-
      soft.proxy.mq.put.options=2064

      这里使用的值是由各个标志表示的所有值的和。例如,open 选项值 2052 表示三个标志 MQC.MQOO_SET_ALL_CONTEXT, MQC.MQOO_INPUT_SHARED 和 MQC.MQOO_INPUT_EXCLUSIVE 被打开。

      Info
      iconfalse
      title队列配置详情

      查阅 Configuring Queues For Recording 以获得有关如何在不同场景中配置记录的提示。

  4. 如果需要,请修改 Use replyToQueueName for response 设置。该选项指定是否使用消息的 replyToQueueName 数据头来确定代理发送响应的位置。它影响 MQMT_REQUEST 类型的 MQ 消息的响应。
    • 如果启用了该选项,来自传入请求的值将用于确定将响应发送到何处。如果未启用该选项,响应将发送值 UI 中指定的队列。更具体地说:
    • 如果启用了该选项,并且指定了 MQMD.replyToQueueManagerName 和 MQMD.replyToQueueName 的值,那么这些值将确定要将响应发送到的队列管理器和队列名称。

    • 如果是,并且请求中缺少了 MQMD.replyToQueueManagerName 或 MQMD.replyToQueueName,那么将使用 UI 中指定的值来替代缺少的值。
    • 如果该选项已禁用,那么将忽略 MQ 请求消息中的 replyToQueueName 和 replyToQueueManagerName 字段。UI 设置将确定消息发送到何处。
  5. 如果需要,请修改 Worker count 设置。

    Info
    iconfalse
    title调整工作线程数量

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

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

    工作线程数量特性相当于 Tomcat server.xml 中的“maxThreads”属性;请查阅 Configuring SSL (HTTPS) for the Virtualize Server 以获得有关在何处为 Virtualize 的 Tomcat 找到 server.xml 的详细信息。

    当将 Virtualize 提供给大量并发虚拟用户(即在负载测试期间)时,通常可以通过增加这些值来期望更好的性能。

  6. 如果不使用全局队列管理器队列管理器,请在本地设置区域中指定连接细节。可以选择以下模式:
    • 默认模式:允许你手动输入连接细节(例如,主机、端口、通道等)。Default mode允许您手动输入连接细节(例如,主机、端口、通道等)。
    • CCDT 模式: mode允许指定提供连接详细信息的客户端通道定义表(CCDT)文件。

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




选项说明
主机Host指定运行 IBM MQ 的主机名。
端口号Port指定运行 IBM MQ 的端口。
通道Channel指定服务端定义的通道的名称。
用户名Username/密码Password如果需要,请输入。

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

对于本地服务器:
 



对于远程服务器:



选项说明
CCDT 文件file

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

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

如果代理部署在本地服务器上,则可以使用文件系统或工作空间按钮浏览到文件的位置。如果你正在配置当前部署在本地服务器上但稍后将部署在远程服务器上的代理,则需要在将代理部署到远程服务器之前将 如果代理部署在本地服务器上,则可以使用文件系统或工作空间按钮浏览到文件的位置。如果您正在配置当前部署在本地服务器上但稍后将部署在远程服务器上的代理,则需要在将代理部署到远程服务器之前将 CCDT 文件部署到远程服务器。请查阅 Transferring Files Between the Remote Server and the Local Machine

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

配置 MQ CCSID

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

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

parasoft.mq.environment.ccsid=<CCSID>

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

请查阅 Virtualize Settings设置

Anchor
Using Global Queue Managers
Using Global Queue Managers
使用全局队列管理器

...