activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Raffaele <r.gambe...@prismasw.it>
Subject Re: Embedded Broker - configuration via Java
Date Fri, 08 Jun 2007 16:02:07 GMT

I'm sorry but I need more help to configure from Java an embedded broker...

In particular I 'm not able to set persitence in MySql, in fact when I
launch my example (that you can found after this message) I cannot see
messages in tables...
And, if I delete the three tables, my code don't reacreate them...

Javadoc of Brokerservice is poor and there isn't a page that explains the
configurations steps from directly Java code...

In my example I start a broker and create a consumer that send messages to a
queue...

The main question is "Why do the messages are stored on db"?
The code is the following:
import javax.jms.JMSException;

import org.apache.activemq.broker.BrokerService;
import org.apache.activemq.memory.UsageManager;
import org.apache.activemq.store.jdbc.JDBCPersistenceAdapter;
import org.apache.activemq.store.jdbc.adapter.MySqlJDBCAdapter;
import org.apache.commons.dbcp.BasicDataSource;



import webrainbow.util.debug.WrCheck;

public class EmbeddedBroker {
	
	private BrokerService m_broker;
	
	public EmbeddedBroker() {
		m_broker = new BrokerService();
		
		// Some configurations
		m_broker.setBrokerName("EmbeddedBroker_localhost");
		m_broker.setUseJmx(false);
		m_broker.setPersistent(true);

		// Setto il memoryManager
		UsageManager um = new UsageManager();
		// Setto il limite in byte
		um.setLimit(20000000);		
		m_broker.setMemoryManager(um);
		
		
		// Add connector
		try {
			m_broker.addConnector("tcp://localhost:61616");
		} catch (Exception e) {
			WrCheck.logError(e);
		}
	}
	
	
	public void go() {
		setPersistence();
				
		try {
			m_broker.start();
		} catch (Exception e) {
			WrCheck.logError(e);
		}		
		
		startDeliveryToQueue();
	}
	
	
	private void setPersistence() {
		// Create a JDBC persistence adapter and set it to use the Oracle Adapter.
		JDBCPersistenceAdapter jdbcPersistence = new JDBCPersistenceAdapter();

		jdbcPersistence.setAdapter(new MySqlJDBCAdapter());

		// Create a basic datasource (org.apache.commons.dbcp.BasicDataSource) and 
		// set the JDBC properties on it.

		BasicDataSource bds = new BasicDataSource();

		bds.setUrl("jdbc:mysql://localhost/activemq?relaxAutoCommit=true");

		bds.setDriverClassName("com.mysql.jdbc.Driver");

		bds.setUsername("root");

		bds.setPassword("");
		
		bds.setPoolPreparedStatements(true);

		// Set the datasource on the JDBC persistence adapter.
		jdbcPersistence.setDataSource(bds);
		
		m_broker.setPersistenceAdapter(jdbcPersistence);		
	}
	
	
	private void startDeliveryToQueue() {
		QueueProducer producer = null;
        try {
        	producer = new QueueProducer("tcp://localhost:61616",
"ARCHIVER_QUEUE");
        } catch (JMSException e1) {
            WrCheck.logWarn(e1);            
        } 
        
        for(;;) {
            try {            	
        		String time = String.valueOf(System.currentTimeMillis());                
                WrCheck.logInfo("Sending queue message --> <" + time + ">");    
           
                producer.sendMessage(time);
            	
            } catch (JMSException ex) {
                WrCheck.logWarn(ex);
                                
                try {
                    WrCheck.logInfo("WebServerSimulator going to sleep...");
                    Thread.sleep(10 * 1000);
                    
                    producer.restart();
                } 
                catch (Exception e) {
                    WrCheck.logWarn(e);
                }
            }            
            catch (Exception exc) {
                WrCheck.logFatal(exc);                
            }
            
            try {
                Thread.sleep((long) (Math.random() * 3000));
            } catch (InterruptedException e) {
                WrCheck.logWarn(e);               
            }
        }
	}
	
	
	public static void main(String[] args) throws Exception {
		EmbeddedBroker eb = new EmbeddedBroker();
		eb.go();		
	}
}

Best regards.
-- 
View this message in context: http://www.nabble.com/Embedded-Broker---configuration-via-Java-tf3888599s2354.html#a11029347
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Mime
View raw message