NetStorm – Java Messaging Service

Java Message Service (JMS) is an API that provides the facility to create, send, and read messages. It provides loosely coupled, reliable, and asynchronous communication. JMS is mainly used to send and receive message from one application to another.
Benefits
  • Asynchronous: JMS is asynchronous by default. So to receive a message, the client is not required to send the request. The message will arrive automatically to the client as they become available.
  • Reliable: JMS provides the facility of assurance that the message will delivered once and only once. You know that duplicate messages create problems. JMS helps you avoiding such problems.
Messaging Domains
Point-to-Point Messaging Domain

The application is built based on message queues, senders, and receivers. Each message is addressed to a particular Queue. A Queue is responsible to hold the message until receiver is ready. One message is delivered to one receiver only. Queues retain all messages sent to them until the messages are consumed or expired.

Characteristics
  • Only one client for each message.
  • No timing dependency for sender and receiver of a message.
  • Receiver can fetch message whether it is running or not when the sender sends the message.
  • Receiver sends the acknowledgement after receiving the message.
Publish/Subscribe Messaging Domain

It is like broadcasting where only one message is published and delivered to all clients (subscribers) through Topic, which acts as a bulletin board. Here, Topic is used as a message oriented middleware that is responsible to hold and deliver messages.

Publishers and subscribers are generally anonymous and can dynamically publish or subscribe to the topic. The topic retains messages as long as it takes to distribute to the present clients.

Characteristics
  • Multiple subscribers for a message
  • Publisher and subscriber have a timing dependency. A client that subscribes to a topic can consume only messages published after the client has created a subscription, and the subscriber must continue to be active to consume messages.

JMS in NetStorm

Cavisson NetStorm supports JMS producer and consumer API scripts in performance test environment for seamless testing of asynchronous communications across application for IBMMQ, Kafka and Tibco.

Creating IBMMQ, Kafka, Tibco Producer/Consumer Scripts

You can create an IBMMQ, Kafka, and Tibco Producer / Consumer script with the following inputs:

  • Producer: To create objects that are required to send the message.
  • Consumer: To receive messages from a topic or a queue.
  • Pool Size: A pool of free connections to a JMS provider. When an application creates a JMS connection, the application server determines if a connection already exists in the free connection pool. If so, the connection is returned to the application; otherwise, a new connection is created. Maximum allowed connections – 65535.
  • Message: Message to provide while creating a ‘Producer’ type script.
Note: For Kafka and Tibco, additional configurations for SSL is required.