Performing load test on Tibco JMS endpoint with JMeter - jmeter

I want to perform load test on a Tibco JMS endpoint using JMeter. The endpoint is a JMS Queue Receiver that will reply to the JMS Message to end the sessions. I have done a lot of googling regarding what parameters to fill in each field of the JMS Point-to-Point sampler with no success. Attached is a screen shot of the Jmeter window. I am not sure whether this is the right sampler to use or if I should use Publisher. Either way, I do not know what to fill in each of these fields. I am currently stuck at the JNDI name Request queue field. When I put my queue name for the JMS on Tibco, I get an error that that name is not found. Leaving the field blank is also problematic. What should I fill in this field to make the request work?

We don't know your topic/queue names so we cannot help, you can ask around, see the application you're trying to simulate configuration or use Graphical Administration Tool for TIBCO® EMS to explore the endpoint and identify the proper queues for messages sending/receiving. For sending the messages you might need to set JMS_TIBCO_SENDER JNDI property
You might also be interested in Building a JMS Testing Plan - Apache JMeter article

Related

Restrict incoming message signature for message broker

My goal is to define some API using REST arch style and spring boot in order to store messages to activemq message broker. I would like to have REST on top of message broker to have possibility to restrict message format. Actually the main goal is to allow only messages which contains all nessessary fields inside message payload.
Could you please suggest if it is rigth way to go and if there are any alternative ways to achive the goal?
Yes. This is a REST-to-Messaging Proxy design and can work just fine for the use case you described.
Alternatively, you could do the message inspection in the broker, but since this inspection sounds logic-related, it is best suited for something running outside the broker.

Using Communication style "clear" in Jmeter JMS point to point sampler

As per http://jmeter.apache.org/usermanual/component_reference.html#JMS_Point-to-Point
the communication style clear is used to clear the messages from the given queue.
Scenario: In my test plan , i have 2 threadgroups.
1) JMS Point to Point sampler to send messages: My JMS sampler fires request_only messages to the inqueue.
2) JMS Point to Point sampler to clear the messages in the outqueue. Here the communication style is selected as "clear" and the outqueue has been specified in the "JNDI Request queue" field.
On running the test plan almost always the View results tree shows that the clear JMS sampler has cleared 0 messages from the outqueue.
Any idea why this is so.
My objective is to ensure that the outqueue is drained regularly. Please advise if there is a better way to do this.
JMeter 4.0 supports clear option in JMS
JMS Point-to-Point sampler has been enhanced with read, browse, clear options.
So you can choose communication style clear

Can IBM MQ internally route messages?

I'm an IBM MQ novice, however have used other messaging systems in the past (Solace, RabbitMQ, BizTalk). I apologize if some of my MQ terminology is incorrect when it comes to local/remote/transmission queues etc.
I am integrating with a 3rd Party using MQ. I have no control over the use of MQ when it comes to this 3rd party. They define the set integration pattern.
I have my own local Queue Manager.
The 3rd party supports many 100s of different message types.
Typically each message sent to them will result in a response
Responses on overage will be delivered back to my QM within 0.5s (agreed SLA)
The basic model is as follows;
For all outbound messaging I publish to a single queue
All responses come to a single inbound queue on my QM
I do not believe they respect/use the ReplyToQ or ReplyToQmgr header properties
High level overview of the use case;
The MQ usage will be very active. Perhaps 500-1000 outbound messages per second
For the vast majority of these - there will be a user waiting for a response
The current design approach is to put a message onto the outbound queue and then create a subscription to the inbound queue with a JMS selector using the correlation ID.
Here is my challenge;
I am not sure if having so many concurrently subscriptions all with a unique filter on the single inbound queue will perform well. I would appreciate insights into this. I have a 2 node cluster running in a docker container. I don't have details on the spec yet.
My preference would be have messages arrive into the inbound queue and then be routed to many "function" specific local queues on the QM.
I would still use JMS selectors on the message ID in this model - however I would hope the load would be spread from a single deep queue to many shorter queues
It does not seem that I could route messages natively within MQ without an addon such as MQ Integration Broker or ESB (some other products within the WebSphere suite).
It is on this last point I could use some guidance. Can I route within my QM? If so - what options do I have. Alternatively - perhaps there are much better approaches that I have not considered?
Any guidance would be heartily appreciated!!

How to retrieve all the messages present in the solace queue

I want to know how do I retrieve the messages already present on the Solace Queue. I am able to send and receive the messages I created from my machine but can't receive any messages that are already present in the queue. I want to retrieve the messages and store it in a text file.
I am sending my messages by integrating Solace APIs in Gradle and writing code in Java. Can anyone guide me regarding the same?
There's an exact tutorial for this.
If you had downloaded the Solace Java JAR via the Maven links, you might have missed the entire suite, which contains all the dependent JARs distributed by Solace, API reference docs, as well as a bunch of samples. The latter is in addition to what you may find on http://dev.solace.com/get-started/java-tutorials/. Get the entire ZIP file, as well as the Release Notes, from http://dev.solace.com/downloads/.
There are multiple possibilities why you cannot receive messages from a queue:
Queue name is misspelt.
Queue permissions are wrong.
Queue is shut down on the egress.
Message spool is not active on the router.
Client profile is set not to receive Guaranteed Messages.
Number of egress flows has exceeded the router / message-vpn limit.
Bind count on the queue has exceeded.
The egress flow is not active.
Client is not connected to the router.
...
Examining the error / exception will give you information why you cannot receive messages.

JMeter JMS Point to Point not returning correct response

JMeter Version: 2.10 .
ActiveMQ 5.9
I have a point to point JMeter script that successfully places a message on a queue. This messaged is then consumed, transformed and placed on a different queue. When I test just a request method (from jmeter), the message is successfully submitted, transformed and returned to the out queue, however when I configure JMeter to consume the response on the out queue, it shows the original request message payload as the response.
Here is my JMeter script details:
JMS Resources
QueueuConnectionFactory: ConnectionFactory
JNDI Name Request Queue: Q.REQ
JNDI Name Reply Queue: Q.RPL
Message Properties
Communication Style: Request Response
Use alternate fields for message correlation: Use Request Message ID (ticked)
Content: (XML Payload)
JNDI Properties
InitialContextFactory: org.apache.activemq.jndi.ActiveMQInitialContextFactory
queue.Q.REQ: message.in
queue.Q.RPL: message.out
java.naming.security.principal: admin
java.naming.security.credentials: admin
Properties
Provider URL: tcp://localhost:61616
I've also tried a few different combinations such as removing the reply queue and specifying a JMSReplyTo as well as manually specifying a JMSCorrelationID. If someone could point me in the right direction or even provide a working jmeter proj example, it would be much appreciated. I also used this guide: http://jmeter.apache.org/usermanual/build-jms-point-to-point-test-plan.html to help build my test.
It looks like that you're missing Q.REQ and Q.RPL definition in JNDI Properties section. They should go along with InitialContextFactory bit.
See Building a JMS Testing Plan - Apache JMeter guide for more details.
Having spoke to a few people, this is a known issue and I haven't found a suitable workaround for this issue right now.
Currently I have had to use the JMeter JMS Pub/Sub Samplers to get this to work properly. If I hear back from the user group I will update this answer accordingly.

Resources