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

章节目录:

JMS 前提条件

JNDI

请参阅 JMS 前提条件

队列分配

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

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

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

指定 JMS 设置

指定 JMS 设置,如下所示:

  1. 在代理连接设置对话框中选择 JMS 作为代理类型。
  2. 指定 JMS 类型(队列/点对点或主题/发布和订阅)。
  3. 如果要在此面板中定义连接设置(而不是像Using Global JMS Connections中所述,引用以前定义的全局 JMS 设置),请在本地设置区域中输入 JMS 提供者详细信息。可以指定提供者 URL、初始化环境类和连接工厂(请确保将相关 jar 添加到 classpath 中),以及身份验证和您想要应用的任何其他初始化环境 JNDI 属性。

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

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

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

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

调整工作线程数量

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

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

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

使用全局 JMS 连接

跨特定 SOAtest 和 Virtualize 服务器应用的全局 JMS 设置可以在服务器级别定义和在这些设置引用。详情请参阅连接选项卡

若要使用全局 JMS 连接,请从适当的队列主题菜单中选择。

要查看预定义的全局连接的详细信息,请点击查看设置

队列配置技巧

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