Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Start a new JMeter instance by executing the following script from the <JMeter_Home>/bin folder: 
    • On windows: jmeter.bat
    • On Linux: sh jmeter.sh
  2.  Go to the JMeter UI and create a JMS subscriber as explained below.
    1. Create a new thread group: Right-click Test Plan (in the left navigator) and go to Add -> Threads (Users) -> Thread Group.
    2. The new thread group will now be listed in the left navigator under the Test Plan.
    3. Right-click on the new thread group and go to Add -> Sampler -> JMS Subscriber.
    4. Name this subscriber Games Subscriber.
    5. You will now have a JMS Subscriber node in the left navigator. Select this node and enter the following details:

      Initial Context Factoryorg.wso2.andes.jndi.PropertiesFileInitialContextFactory
    6. The connection details you specified in the jnditopics.properties file should be entered for the JMS Subscriber as shown below.

      Provider URLThe location where you saved the jnditopics.properties file.
      Connection FactoryTopicConnectionFactory.
      DestinationThe jndi JNDI name given to the topic hierarchy in the jnditopics.properties file. For example, to subscribe to all the topics in the topic hierarchy, enter 'All_Games'.
    7. Right-click on the new Thread Group and go to Add -> Listener -> View Results Tree. This will create a listener node in the JMeter navigator for analysing the output of the subscription.
    8. Save the information. You now have a JMS client subscribed to the 'games' topic and all its child topics.

  3. Execute the JMeter client.

  4. Now, go to the management console of the Message Broker profile and go to Main -> Subscriptions -> Topic Subscription List. Your subscription will be listed as a non-durable topic subscription:

...

  1. Open two separate instances of JMeter by executing the following script from the <JMeter_Home>/bin folder: 
    • On windows: jmeter.bat
    • On Linux: sh jmeter.sh
  2. Create JMS subscribers in both JMeter instances. Name them JMS Durable Subscriber 01 and JMS Durable Subscriber 2 respectively. Use the following connection details (same as for the non-durable subscription).

    Initial Context Factoryorg.wso2.andes.jndi.PropertiesFileInitialContextFactory
    Provider URLThis should be the location where you have the jnditopics.properties file saved.
    Connection FactoryThis should be set to TopicConnectionFactory.
    DestinationThis should be the jndi name given to the topic hierarchy in the jnditopics.properties file. For example, to subscribe to all the topics in the topic hierarchy, enter 'All_Games'.
  3. In addition to the above configuations, be sure to add durable subscription IDs for both subscribers. Let's use Sub_1 and Sub_2 to identify the subscriptions.

    1. For JMS Durable Subscriber 01:

      Durable Subscription IDSub_1
    2. For JMS Durable Subscriber 02:

      Durable Subscription IDSub_2
  4. Right-click on the new test plan Thread Group and go to Add -> Listener -> View Results in Tree. This will create a listener node in the JMeter navigator for analysing the output of the subscription.
  5. Save the information.

  6. Execute both the JMeter instances. 
  7. Now, go to the management console of the Message Broker profile and go to Main -> Subscriptions -> Topic Subscription List. The durable subscriptions will be listed as active durable subscriptions:
  8. Now, open the JMeter instance for JMS Durable Subscriber 02 and close stop the connectionexecution
  9. Now, the disconnected durable subscriber will be listed as an inactive durable subscription in the management console as shown below.
     

...

We will now set up Apache JMeter as a JMS publisher. Note that, in

Note

In the previous steps, we created three subscriptions for All Topics in the topic hierarchy. This means all three subscribers should receive the messages published to any one of the topics in the topic hierarchy.

Follow the instructions given below.

  1. Start a new JMeter instance by executing the following script from the <JMeter_Home>/bin folder: 

    • On windows: jmeter.bat
    • On Linux: sh jmeter.sh
  2. Create a new test plan Thread Group in JMeter: Right-click on Test Plan (in the left navigator) and go to Add -> Threads (Users) -> Thread Group.

  3. The new thread group will now be listed in the left navigator as a test planunder the Test Plan.
  4. Right-click on the new test plan Thread Group and go to Add -> Sampler -> JMS Publisher.
  5. Name this publisher Games Publisher.
  6. You will now have a JMS Publisher node in the left navigator. Select this node and enter the following details:

    Initial Context Factoryorg.wso2.andes.jndi.PropertiesFileInitialContextFactory
  7. The connection details you specified in the jnditopics.properties file should be entered for the JMS Publisher as shown below.

    Provider URLThis should be the The location where you have saved the jnditopics.properties file saved.
    Connection FactoryThis should be set to TopicConnectionFactory.
    DestinationThis should be the jndi The JNDI name of the topic to which the message should be published. The jnditopics.properties file specifies the mapping between topic names and jndi names. For example, as specified in the jnditopics.properties file, enter 'Cricket_Only' if you want to publish a message to the cricket topic. Alternatively, you can publish to any of the following destinations: 'Football_Only', 'Germany_Only', 'Brazil_Only', 'India_Only', 'Australia_Only'.
    Expiration0
    Priority0
  8. Save the information. You now have a JMS client ready to send messages.

  9. Execute the JMeter publisher.
  10. Go back to the management console of the MB profile and go to Subscriptions -> Topic Subscription List in the Main tab. You will observe the following: 
    Image Modified

    Note the following:

    1. The non-durable topic subscription has immediately received the published messaged. You can verify this from the  View Results in Tree tab of the respective JMeter client.
    2. The first durable subscription (Sub_1) has also received the published message. Verify this from the  View Results in Tree tab of the respective JMeter client.
    3. The second durable subscription (Sub_2) has not received the message because the subscription was inactive. However, the unconsumed message is listed as a pending delivery for the subscriber as shown above. This means that as soon as Sub_2 becomes active, the message will be delivered.