本主题解释如何配置通过 JMS 传输发送和接收消息的消息代理。

在本章节中:

JMS 前提条件

JNDI

请查阅 JMS 前提条件

队列分配

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

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

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

指定 JMS 设置

指定 JMS 设置,如下所示:

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



  2. 指定 JMS 类型(队列/点对点或主题/发布和订阅)。
  3. 如果要在此面板中定义连接设置(而不是像 JMS 配置中描述的那样引用以前定义的全局 JMS 设置),请在本地设置区域中输入 JMS 提供者详细信息。可以指定提供者 URL、初始上下文类和连接工厂(请确保将相关 jar 添加到类路径中),以及身份验证和您想要应用的任何其他初始上下文 JNDI 属性。


    在一个代理中使用多个 JMS 连接

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

  4. 指定连接详情。您可以在此面板中输入每个连接的设置(通过本地设置选项),或者引用在服务器级别定义的全局 JMS 连接器。



  5. 如果需要,请修改 Use JMSReplyTo for Response 设置。它指定是否使用消息的 JMSReplyToQueueName 数据头来确定代理发送响应的位置。
  6. 如果需要,请修改 Worker count 设置。

调整工作线程数量

每个工作线程创建自己到 JMS 提供程序的连接。当部署/重新部署代理时,工作线程计数高于默认值 1,则应该在控制台中看到类似“Started x listener(s)”这样的消息(其中 x 是配置的工作线程数量)。

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

worker count 特性相当于 Tomcat server.xml 中的 “maxThreads” 属性。此文件位于 以下目录中: [INSTALL]/eclipse/plugins/com.parasoft.xtest.libs.web_[version]/root/tomcat/conf/server.xml当使用大量并发虚拟用户(例如,在负载测试期间)时,通常可以通过增加这些值来期望更好的性能。

使用全局 JMS 连接

跨特定 SOAtest 和 Virtualize 服务器应用的全局 JMS 设置可以在服务器级别定义和在这些设置引用。有关更多详情,请查阅 Connections Tab 。

若要使用全局 JMS 连接,请从适当的 QueueTopic 框中选择它。



要查看预定义的全局连接的详细信息,请单击 View settings

队列配置技巧

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