ESB Process hungs when 500 JMS messages loaded in the Queue

Posted by chetanparekh on 14-Feb-2011 11:07

We created a simple ESB Process and mapped is to JMS Queue for accepting incoming JMS messages.

The ESB Process is very basic and it has following services

1.      One CBR to route incoming messages to a specific DB Service for insertion

2.      One DB Service to interact with database

3.      Two ESBDB files to perform insert operation in two different tables.

When any message arrived, the CBR will forward it to the appropriate ESBDB service for insertion.

We created a JMS Test Client to perform the load testing of the ESB Process. We were able to sucessfully test scenarious for 10, 50, 200 message at a time. But when we tried to test for 500 message at a time, Sonic EBS gets hanged after inserting approx 150 records. Sometime we are able to pending messages at JMS Queue which is the  Entry Endpoint of the ESB Process. Sometimes all are consumed from JMS Queue but not all messages are inserted into the database.

We don’t find any error in Container Log, Domain Manager Log and Test Client Log.

Following is the code snippet of Test Client that we created in Java.

factory = (new progress.message.jclient.ConnectionFactory(DEFAULT_BROKER_NAME));

connect = factory.createConnection(USERNAME, PASSQWORD);

sendSession = connect.createSession(false,javax.jms.Session.AUTO_ACKNOWLEDGE);

javax.jms.TextMessage msg = sendSession.createTextMessage();

javax.jms.Queue sendQueue = sendSession.createQueue(QUEUE_NAME);

sender = sendSession.createProducer(sendQueue);

msg.setText(getData(i));

sender.send(msg, javax.jms.DeliveryMode.PERSISTENT,javax.jms.Message.DEFAULT_PRIORITY, MESSAGE_LIFESPAN);

How to resolved this issue??

All Replies

Posted by sk185050 on 14-Feb-2011 11:14

Are you doing select on the data in you DB transaction?

Are you using the same message with you load test?

Posted by chetanparekh on 14-Feb-2011 11:22

We are performing insert operation,

One ID field in message having integer value which is getting changed for each message and other content is same

Posted by tgrijpma on 15-Feb-2011 01:45

Are you using the same DBservice instance twice in your ESB process?

This can cause a possible 'dead-lock' and will make your ESB process hung.

As for a test client, have you also looked at this free Sonic client program? http://queuemanager.nl/download/

It allows you also to send a message (or directory with messages) to a queue for multiple times (even with a delay).

This thread is closed