Thanks for the reply,but it is solved.
Hiram Chirino wrote: > > Best bet is to run it with a profiler to figure out where the hot spot > is for linux. > > On 12/18/06, garima015 <[EMAIL PROTECTED]> wrote: >> >> I am facing a really bad performance of ActiveMq on linux box. >> When running on windows 1000 transactions are taking 2 seconds and when >> running on Linux same are taking 40 sec. >> Please if anybody can tell me solution to performance issue. >> >> Here is the code i am using to send and receive the message. >> >> Thanks in advance >> >> public class Requestor{ >> private Session session; >> private Destination replyQueue; >> private MessageProducer requestProducer; >> private MessageConsumer replyConsumer; >> Logger logger = null; >> >> /** >> * Constructor >> */ >> protected Requestor() { >> super(); >> logger = >> LoggerWrapper.getLogger(this.getClass().getName()); >> } >> >> /** >> * This method will return the object of Requestor >> * @param connection, Connection >> * @param requestQueueName , String >> * @return Requestor object >> * @throws JMSException >> * @throws NamingException >> */ >> public static Requestor newRequestor(Connection connection, >> String >> requestQueueName)throws JMSException, NamingException { >> Requestor requestor = new Requestor(); >> requestor.initialize(connection, requestQueueName); >> return requestor; >> } >> >> /** >> * This method will initialize the Producer and Consumer on >> request >> and reply queue >> * @param connection, Connection >> * @param requestQueueName , String >> * @throws NamingException >> * @throws JMSException >> */ >> protected void initialize(Connection connection, String >> requestQueueName)throws NamingException, JMSException { >> session = connection.createSession(false, >> Session.AUTO_ACKNOWLEDGE); >> Destination requestQueue = >> session.createQueue(requestQueueName); >> >> replyQueue = session.createTemporaryQueue(); >> requestProducer = session.createProducer(requestQueue); >> >> requestProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); >> replyConsumer = session.createConsumer(replyQueue); >> replyConsumer.receive(10); >> } >> >> /** >> * This method is used to send the message to queue >> * @param message >> * @throws JMSException >> */ >> public String send(String message) throws JMSException { >> TextMessage requestMessage = (TextMessage) >> session.createTextMessage(); >> requestMessage.setText(message); >> requestMessage.setJMSReplyTo(replyQueue); >> requestProducer.send(requestMessage); >> return receiveSync(); >> } >> >> /** >> * This method is used to receive the message from the queue >> * @return String >> * @throws JMSException >> */ >> private String receiveSync() throws JMSException { >> TextMessage replyMessage = null; >> Message msg = replyConsumer.receive(); >> >> if (msg instanceof TextMessage){ >> replyMessage = (TextMessage) msg; >> } >> logger.debug("receive Sync:"+ new Date().getTime()); >> return replyMessage.getText(); >> } >> } >> >> public class Replier implements MessageListener { >> >> private Session session; >> Logger logger = null; >> Engine engineRef = null; >> Transformer transformerRef = null; >> MessageConsumer requestConsumer = null; >> Destination replyDestination = null; >> private static Map destinationMap = new HashMap(); >> /** >> * Constructor >> * >> */ >> protected Replier(){ >> super(); >> logger = >> LoggerWrapper.getLogger(this.getClass().getName()); >> } >> >> /** >> * This will return the instance of replier >> * @param connection, Connection >> * @param requestQueueName >> * @return >> * @throws Exception >> */ >> public static Replier newReplier(Connection connection,String >> requestQueueName ,Engine engine,Transformer transformer)throws Exception >> { >> Replier replier = new Replier(); >> replier.initialize(connection, >> requestQueueName,engine,transformer); >> return replier; >> } >> >> /** >> * This method will initilize the consumer on request queue >> * @param connection >> * @param requestQueueName >> * @throws Exception >> */ >> protected void initialize(Connection connection, String >> requestQueueName, Engine engine,Transformer transformer)throws Exception >> { >> session = connection.createSession(false, >> Session.AUTO_ACKNOWLEDGE); >> >> // Create the destination (Topic or Queue) >> //Destination requestQueue = >> session.createQueue(requestQueueName+"?consumer.retroactive=true"); >> Destination requestQueue = >> session.createQueue(requestQueueName); >> requestConsumer = session.createConsumer(requestQueue); >> MessageListener listener = this; >> requestConsumer.setMessageListener(listener); >> engineRef = engine; >> transformerRef = transformer; >> } >> >> /** >> * This method will be called when ever the message will be >> placed >> on Message queue >> */ >> public void onMessage(Message message) { >> try { >> logger.debug("On message:"+ new >> Date().getTime()); >> if ((message instanceof TextMessage) && >> (message.getJMSReplyTo() != null)) { >> TextMessage requestMessage = >> (TextMessage) >> message; >> String contents = >> requestMessage.getText(); >> >> Object obj = >> transformerRef.transform(contents); >> engineRef.process(obj); >> contents = (String)transformerRef.transform(obj); >> >> if(null == >> destinationMap.get(message.getJMSReplyTo().hashCode())){ >> destinationMap.put(message.getJMSReplyTo().hashCode(), >> message.getJMSReplyTo()); >> replyDestination = message.getJMSReplyTo(); >> logger.info("In new"); >> }else{ >> replyDestination = (Destination) >> destinationMap.get(message.getJMSReplyTo().hashCode()); >> logger.info("in already"); >> } >> >> MessageProducer replyProducer = >> session.createProducer(replyDestination); >> TextMessage replyMessage = >> session.createTextMessage(); >> replyMessage.setText(contents); >> >> replyMessage.setJMSCorrelationID(requestMessage.getJMSMessageID()); >> replyProducer.send(replyMessage); >> } >> }catch (JMSException ex) { >> logger.fatal("Failing while reading the message >> from >> queue"+ex.getMessage(),ex); >> }catch (Exception e) { >> logger.fatal("Failing while transforming the >> message"+e.getMessage(),e); >> } >> } >> >> } >> >> -- >> View this message in context: >> http://www.nabble.com/Performance-Issue-tf2841698.html#a7934436 >> Sent from the ActiveMQ - Dev mailing list archive at Nabble.com. >> >> > > > -- > Regards, > Hiram > > Blog: http://hiramchirino.com > > -- View this message in context: http://www.nabble.com/Performance-Issue-tf2841698.html#a7948596 Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.