public class ActiveMqTest { public ActiveMqTest() { } /////////////////////////////////////////////////////// // Just getting started with ActiveMQ. // I must be doing something very wrong to be getting such poor performance on local sends (21 messages/sec). // Please take a quick look and see if there is something obvious. // This code is a derivative of HelloWorldProducer at http://www.activemq.org/site/hello-world.html. // Thank you in advance for any help! /////////////////////////////////////////////////////// // ActiveMQ version: ActiveMQ 4.0-M4 (per activemq --version) // OS, HW: Windows 2000 SP4; 900Mhz Pentium Dell Inspiron 8000 laptop, 512MB RAM // Broker started on local machine // Broker output follows: // // C:\activemq>bin\activemq // ACTIVEMQ_HOME: C:\activemq // Loading message broker from: xbean:activemq.xml // INFO BrokerService - ActiveMQ 4.0-M4 JMS Message Broker (localhost) is starting // INFO BrokerService - For help or more information please see: http://www.logicblaze.com // INFO JDBCPersistenceAdapter - Database driver recognized: [apache_derby_embedded_jdbc_driver] // INFO JournalPersistenceAdapter - Journal Recovery Started from: Active Journal: using 5 x 20.0 Megs at: ..\activemq-data\journal // INFO JournalPersistenceAdapter - Journal Recovered: 1 message(s) in transactions recovered. // INFO TransportServerThreadSupport - Listening for connections at: tcp://richlaptop:61616 // INFO TransportConnector - Accepting connection on: tcp://richlaptop:61616 // WARN MulticastDiscoveryAgent - brokerName not set // INFO TransportServerThreadSupport - Listening for connections at: tcp://richlaptop:61617?wireFormat=stomp // INFO TransportConnector - Accepting connection on: tcp://richlaptop:61617?wireFormat=stomp // INFO BrokerService - ActiveMQ JMS Message Broker (localhost) started // INFO NetworkConnector - Establishing network connection between vm://localhost?network=true and null at failover:tcp://richlaptop:6161 // INFO VMTransportFactory - binding to broker: localhost // INFO TransportConnector - Accepting connection on: vm://localhost // INFO ManagementContext - JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi // INFO DemandForwardingBridge - Starting a network connection between vm://localhost#0 and unconnected has been established. // INFO DemandForwardingBridge - Disconnecting loop back connection. // INFO VMTransportFactory - Shutting down VM connectors for broker: localhost // INFO VMTransportFactory - Shutting down VM connectors for broker: localhost // // // C:\activemq\bin>java -version // java version "1.5.0_02" // Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_02-b09) // Java HotSpot(TM) Client VM (build 1.5.0_02-b09, mixed mode, sharing) // // Method output: // Sending 200 messages // Sent 200 messages at a rate of 21.13494663425975 messages per second // ------------------ NOTES ------------------ // If setDeliveryMode to NON_PERSISTENT rate jumps to 995 per second // All config files unchanged from installation and all log/data files under install dir several months old. /////////////////////////////////////////////////////// public static void main( String [] args ) { javax.jms.Connection connection = null; javax.jms.Session session = null; try { // Setup org.apache.activemq.ActiveMQConnectionFactory connectionFactory = new org.apache.activemq.ActiveMQConnectionFactory( "tcp://localhost:61616" ); connection = connectionFactory.createConnection(); session = connection.createSession( false, javax.jms.Session.AUTO_ACKNOWLEDGE ); javax.jms.Destination destination = session.createQueue( "TestQueue" ); javax.jms.MessageProducer producer = session.createProducer( destination ); producer.setDeliveryMode( javax.jms.DeliveryMode.PERSISTENT ); connection.start(); // Build and send message numToSend times int numToSend = 200; javax.jms.TextMessage message = session.createTextMessage(); System.out.println( "Sending " + numToSend + " messages" ); System.out.flush(); long t1 = System.currentTimeMillis(); for ( int i = 0; i < numToSend; ++i ) { message.setText( "Message#" + Integer.toString( i ) ); producer.send( message ); } long t2 = System.currentTimeMillis(); // Compute and print out send rate double rate = ( double ) numToSend/( ( double ) ( t2 - t1 )/1000.0 ); System.out.println( "Sent " + numToSend + " messages at a rate of " + rate + " messages per second" ); System.out.flush(); } catch ( Exception eOuter ) { eOuter.printStackTrace(); } finally { // Clean up try { if ( session != null ) session.close(); if ( connection != null ) connection.close(); } catch ( Exception eInner ) { eInner.printStackTrace(); } } } }
-- View this message in context: http://www.nabble.com/AMQ-Beginner---slow-producer-tf2269364.html#a6298777 Sent from the ActiveMQ - User forum at Nabble.com.