[jboss-user] [JBoss Messaging] - Sending a message to a queue is slow sometimes.
croy
do-not-reply at jboss.com
Sat Apr 25 03:44:18 EDT 2009
Hi,
I am experiencing periodic performance issues when sending an object to a message queue on jboss 5 jmessaging.
Normally this operation takes 10 ms but sometimes(1%) I see 5+ seconds below is the code.
I have ruled out Garbage collection as the cause. Any advice on the code below specifically on the message send line and why it would be a resource problem - any queue sizing I need to be aware of?
I use mysql as the persistence layer to a localhost database - any connection pool sizing I should be aware of ( I use a connection pool of min 5 / max 20 ).
Any advice on performance please ?
Thanks,
Colm
public final static void sendObjectToQueue(String queueName,
| EPOSBatchMessage messageObject) {
| long startTime = System.currentTimeMillis();
| QueueConnection conn = null;
| QueueSession session = null;
| Queue que = null;
| InitialContext iniCtx = null;
| QueueConnectionFactory qcf = null;
| Object tmp = null;
| QueueSender send = null;
| try {
| log.debug("PERFORMANCE: (sendObjectToQueue): size of message: " + messageObject.toString().length() + " - " + (System.currentTimeMillis() - startTime ) + "(ms)");
|
| iniCtx = new InitialContext();
| tmp = iniCtx.lookup("ConnectionFactory");
| qcf = (QueueConnectionFactory) tmp;
| log.debug("PERFORMANCE: (sendObjectToQueue): About to create connection: " + (System.currentTimeMillis() - startTime ) + "(ms)");
| conn = qcf.createQueueConnection();
| log.debug("PERFORMANCE: (sendObjectToQueue): Connection Created: " + (System.currentTimeMillis() - startTime ) + "(ms)");
| que = (Queue) iniCtx.lookup(queueName);
| log.debug("PERFORMANCE: (sendObjectToQueue): Queue lookup succeeded: " + (System.currentTimeMillis() - startTime ) + "(ms)");
| session = conn.createQueueSession(false,
| QueueSession.AUTO_ACKNOWLEDGE);
| log.debug("PERFORMANCE: (sendObjectToQueue): Session Created: " + (System.currentTimeMillis() - startTime ) + "(ms)");
| send = session.createSender(que);
| log.debug("PERFORMANCE: (sendObjectToQueue): Sender Created: " + (System.currentTimeMillis() - startTime ) + "(ms)");
| ObjectMessage om = session.createObjectMessage();
| om.setObject(messageObject);
| log.debug("PERFORMANCE: (sendObjectToQueue): Message Created: " + (System.currentTimeMillis() - startTime ) + "(ms)");
| send.send(om); // <----- this is where the slow down is occuring
| log.debug("PERFORMANCE: (sendObjectToQueue): Message Sent: " + (System.currentTimeMillis() - startTime ) + "(ms)");
| log.info("sendMessage, sent object = " + om
| + " sent queue = " + queueName);
| if(send!=null){ send.close(); }
| if(conn!=null){conn.close();}
| if(session!=null){session.close();}
| }catch (Exception e){
| log.error("In sendObjectToQueue: caught exception: " + e);
| e.printStackTrace();
| }
| long endTime = System.currentTimeMillis();
| long time = endTime - startTime;
| log.debug("PERFORMANCE: (sendObjectToQueue" + queueName + " , " + messageObject + "): Time Taken: " + time + "(ms)");
View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4226728#4226728
Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4226728
More information about the jboss-user
mailing list