Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用ActiveMQ的JMeter JMS点对点采样器_Java_Jmeter_Activemq - Fatal编程技术网

Java 使用ActiveMQ的JMeter JMS点对点采样器

Java 使用ActiveMQ的JMeter JMS点对点采样器,java,jmeter,activemq,Java,Jmeter,Activemq,我们正在升级一个应用程序以使用ActiveMQ(经典版,5.15.9版)。 因此,我们正在调整现有的JMeter(3.1版)测试以使用ActiveMQ。在JMS采样器中,属性已修改并设置如下: 初始上下文工厂= org.apache.activemq.jndi.ActiveMQInitialContextFactory 上下文提供程序Url=tcp://[MyHost]:61616 队列连接工厂=连接工厂 发送队列=Queue.MyApp.RequestQueue 接收队列=Queue.MyA

我们正在升级一个应用程序以使用ActiveMQ(经典版,5.15.9版)。 因此,我们正在调整现有的JMeter(3.1版)测试以使用ActiveMQ。在JMS采样器中,属性已修改并设置如下:

  • 初始上下文工厂= org.apache.activemq.jndi.ActiveMQInitialContextFactory
  • 上下文提供程序Url=tcp://[MyHost]:61616
  • 队列连接工厂=连接工厂
  • 发送队列=Queue.MyApp.RequestQueue
  • 接收队列=Queue.MyApp.ResponseQueue
尽管如此,我还是在JMeter日志中发现了以下错误(即使功能测试使用ActiveMQ单机版和队列):

错误-jmeter.protocol.jms.sampler.JMSSampler:queue.MyApp.RequestQueue javax.naming.NameNotFoundException:queue.MyApp.RequestQueue

位于org.apache.activemq.jndi.ReadOnlyContext.lookup(ReadOnlyContext.java:235)

在javax.naming.InitialContext.lookup(InitialContext.java:417)

位于org.apache.jmeter.protocol.jms.sampler.JMSSampler.threadStarted(JMSSampler.java:337)

位于org.apache.jmeter.threads.JMeterThread$ThreadListenerTraverser.addNode(JMeterThread.java:659)

位于org.apache.jorphan.collections.HashTree.traverseInto(HashTree.java:996)

位于org.apache.jorphan.collections.HashTree.traverse(HashTree.java:978)

位于org.apache.jmeter.threads.JMeterThread.threadStarted(JMeterThread.java:628)

位于org.apache.jmeter.threads.JMeterThread.initRun(JMeterThread.java:616)

位于org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:245)

运行(Thread.java:745)

有没有想过我可能错过了什么?

您需要以稍微不同的方式进行配置,即:

  • JNDI名称请求队列:
    Q.REQ
  • JNDI名称接收队列:
    Q.RSP
  • 添加以下JNDI属性:

    • queue.Q.RSP
      值为
      queue.MyApp.ResponseQueue
    • queue.Q.REQ
      值为
      queue.MyApp.RequestQueue
  • 完整配置,以防万一:

    更多信息:

    演示:

    我一直在寻找解决问题的方法

    在本教程中,我设置:

    • 发送队列=Q.REQ
    • 接收队列=Q.RESP
    然后,我添加了JNDI属性,如下所示:

    • Name=queue.Q.REQ,value=queue.MyApp.RequestQueue
    • Name=queue.Q.RESP,value=queue.MyApp.RequestQueue

    我似乎从其他渠道找到了同样的信息。它具有确认解决方案的优势。谢谢