本主题解释如何配置通过 JMS 传输发送和接收消息的消息代理(和记录代理)。
在本章节中:
JMS 前提条件
JNDI
请查阅 JMS 前提条件。
队列分配
当在队列上交换流量时,假设有一个客户机应用程序向客户机目标队列发送请求,而服务器应用程序从队列接收该消息,然后将另一条(应答)消息发送到第二个队列,以便客户机接收。
考虑到这个场景,Parasoft Virtualize 客户机和服务器之间使用“中间人”(也称为代理)方法,因此消息传递提供者上需要两个额外的队列来促进该中介。Virtualize 代理将从客户机放置消息的位置接收消息,记录消息内容(如果启用了记录功能),然后将消息放到服务器将接收它的队列中。类似地,服务器将消息发送到一个队列,在这个队列中代理接收它,并记录它(如果启用了记录功能),然后将它放回客户机期待应答响应的队列中。
因此,需要分配两个额外的队列,其中之一是:
- 调整客户机应用程序,以便在这两个新队列上通信(使用为它们配置的代理连接)。
- 调整服务器应用程序以使用其他两个队列。
只需要修改两个应用程序队列中的一个。
指定 JMS 设置
指定 JMS 设置,如下所示:
- 在 Proxy Connection Settings 对话框中选择 JMS 作为 Proxy Type。
- 指定 JMS 类型(队列/点对点或主题/发布和订阅)。
如果要在此面板中定义连接设置(而不是像 Using Global JMS Connections中描述的那样引用以前定义的全局 JMS 设置),请在本地设置区域中输入 JMS 提供者详细信息。可以指定提供者 URL、初始上下文类和连接工厂(请确保将相关 jar 添加到 Virtualize 类路径中),以及身份验证和你想要应用的任何其他初始上下文 JNDI 属性。
在一个代理中使用多个 JMS 连接
如果你想配置连接到不同 JMS 服务器在一个代理(例如,你想要一个特定的代理连接使用部署在两个不同的 JMS 服务器上的两个队列),请为每个连接创建一个全局 JMS 管理,然后选择适当的连接来配置代理。
- 指定连接详情。你可以在此面板中输入每个连接的设置(通过本地设置选项),或者引用在 Virtualize 服务器级别定义的全局 JMS 连接(有关更多详情,请查阅 Using Global JMS Connections )。
对于 Queues(点到点):Virtualize 将捕获发送给客户端 Destination queue 的消息,然后将其转发到服务器 Reply to queue 以进行处理。服务器 Destination queue 是服务器将在其上放置响应消息的队列(处理请求消息之后)。Virtualize 将捕获这些消息并将其转发至客户端 Reply to queue。
队列配置详情
查阅 Configuring Queues For Recording 以获得有关如何在不同场景中配置记录的提示。
- 对于 Topics(发布和订阅):Virtualize 监控客户端 Subscribe topic 上传入的请求,以及服务端 Publish topic上输出的响应。
- 如果需要,请修改 Use JMSReplyTo for Response 设置。它指定是否使用消息的 JMSReplyToQueueName 数据头来确定代理发送响应的位置。
- 如果启用了该选项,来自传入请求的值将用于确定将响应发送到何处。
- 如果未启用该选项,响应将发送值 UI 中指定的队列;JMS 消息数据头中的值将被忽略。
- 如果需要,请修改 Worker count 设置。
调整工作线程数量
每个工作线程创建自己到 JMS 提供程序的连接。当部署/重新部署代理时,工作线程计数高于默认值 1,则应该在控制台中看到类似“Started x listener(s)”这样的消息(其中 x 是配置的工作线程数量)。
增加工作线程数量可以帮助提高并发下的性能。代理的整个消息处理链是并行的,因此每个工作线程将与其他线程并行地进行消息关联、响应消息生成等操作。但是,要注意,如果提供了较高的工作线程数量,部署/取消部署/重新部署代理将花费更长的时间,因为要创建/销毁的连接更多。此外,JMS 提供程序可能对允许多少并发连接有限制。不应该超过基础设施配置/允许的范围。
工作线程数量特性相当于 Tomcat server.xml 中的“maxThreads”属性;请查阅 Configuring SSL (HTTPS) for the Virtualize Server 以获得有关在何处为 Virtualize 的 Tomcat 找到 server.xml 的详细信息。
当将 Virtualize 提供给大量并发虚拟用户(即在负载测试期间)时,通常可以通过增加这些值来期望更好的性能。
使用全局 JMS 连接
跨特定 Virtualize 服务器应用的全局 JMS 设置可以在服务器级别定义,然后在这里引用。有关更多详情,请查阅 Connections Tab 。
若要使用全局 JMS 连接,请从适当的 Queue 或 Topic 框中选择它。
要查看预定义的全局连接的详细信息,请单击 View settings。
队列配置技巧
查阅 Configuring Queues For Recording 以获得有关如何在不同场景中配置队列的提示。