blob: 5acc9d04f224df8765134241dcf1e5af76f20ae3 [file] [log] [blame]
<div class="wiki-content maincontent"><h2>Document Organization</h2><p><structured-macro ac:macro-id="326b44f4-74e4-42fc-b124-f7ab4c105b3d" ac:name="toc" ac:schema-version="1"><parameter ac:name="exclude">Document Organization</parameter></structured-macro></p><p>Firstly you need to add the jars to your classpath.</p><h2>Required JARs</h2><p>To make ActiveMQ easy to use, the default <strong>activemq-all.jar</strong> comes complete with all the libraries required. If you prefer to have explicit control over all the jars used by ActiveMQ here is the full list of individual jars required</p><ul><li>activemq-broker.jar</li><li>activemq-client.jar</li><li>activemq-kahadb-store.jar</li><li>activemq-spring.jar</li><li>hawtbuf-1.11.jar</li><li>slf4j-api.jar</li><li>slf4j-log4j12.jar</li><li>log4j-1.2.17.jar</li><li>J2EE APIs which could be the j2ee.jar from Sun or your J2EE container or you could use Geronimo's freely distributable geronimo-spec-j2ee.jar. If you are inside a servlet container and being dependent on the j2ee.jar causes you troubles, the parts of the J2EE jar we are dependent on are as follows...<ul><li>geronimo-spec-jms.jar</li><li>geronimo-spec-jta.jar</li><li>geronimo-spec-j2ee-management.jar</li></ul></li></ul><p>If you want to grab a J2EE specification jar we recommend the Apache <a shape="rect" href="http://cvs.apache.org/repository/geronimo-spec/jars/">repository</a></p><h2>Optional JARS</h2><ul><li>spring.jar - if you wish to use the XML configuration file for configuring the Message Broker</li></ul><ul><li>if you wish to use message persistence then you need to add a persistent jar to your classpath (see below). If you just want a lightweight message bus with no durability you can leave this step out but we highly recommend persistence for production deployments.</li></ul><h2>Persistence support</h2><p>The default persistence is the <link><page ri:content-title="AMQ Message Store"></page></link>. We do still support persistence via <link><page ri:content-title="Persistence"></page><plain-text-link-body>JDBC and a high performance journal</plain-text-link-body></link>. For full explict control over configuration check out the <link><page ri:content-title="Xml Configuration"></page></link>.</p><p>If you're just doing some testing or in-VM SEDA based messaging you may wish to disable persistence. You can use the <link><page ri:content-title="Xml Configuration"></page></link> for this.</p><p>You can do this by setting the usePersistence property to false either in the <link><page ri:content-title="Xml Configuration"></page></link> or on the <link><page ri:content-title="Configuring Transports"></page><plain-text-link-body>broker URL</plain-text-link-body></link>.</p><h2>Next steps</h2><p>One of the first things you might want to do is <link><page ri:content-title="Run Broker"></page><plain-text-link-body>start a broker</plain-text-link-body></link>. Once you have a broker running you could try using the <link><page ri:content-title="JNDI Support"></page></link> which shows how to run an example JMS program. Or there are some other <link><page ri:content-title="Examples"></page><plain-text-link-body>example programs</plain-text-link-body></link></p><p>If you don't want to use JNDI you can just instantiate an <a shape="rect" href="http://activemq.codehaus.org/maven/apidocs/org/apache/activemq/ActiveMQConnectionFactory.html">ActiveMQConnectionFactory</a>, configure its properties directly and then you're ready to use the standard JMS API to create Connections, Sessions, MessageProducer and MessageConsumer instances.</p><h2>Additional resources</h2><h3>Related reading</h3><ul><li>Sun's <a shape="rect" href="http://java.sun.com/products/jms/tutorial/">JMS Tutorial</a> is a handy place to start looking at how to use the JMS API directly</li><li>The ActiveMQ <a shape="rect" href="http://activemq.org">Website</a> for specifics on how to use ActiveMQ</li><li><link><page ri:content-title="Topologies"></page><plain-text-link-body>ActiveMQ Topologies</plain-text-link-body></link></li><li><link><page ri:content-title="Clustering"></page><plain-text-link-body>ActiveMQ Clustering</plain-text-link-body></link></li><li><link><page ri:content-title="Networks of Brokers"></page><plain-text-link-body>ActiveMQ Network of Brokers</plain-text-link-body></link></li><li><a shape="rect" href="http://www.eecs.harvard.edu/~mdw/proj/seda/">Staged Event Driven Architecture (SEDA)</a></li></ul><h3>Specifications</h3><ul><li><a shape="rect" href="http://java.sun.com/j2ee/connector/">Java Connector Architecture 1.5</a></li><li><a shape="rect" href="http://java.sun.com/products/jms/index.jsp">Java Messaging Service</a></li><li><a shape="rect" href="http://ws.apache.org/wsif/">WSIF</a></li><li><a shape="rect" href="http://www-128.ibm.com/developerworks/webservices/library/specification/ws-notification/">WS-Notification</a></li></ul><h3>Related open source projects</h3><ul><li><a shape="rect" href="http://geronimo.apache.org/">Apache Geronimo</a></li><li><a shape="rect" href="http://www.hermesjms.com/">Hermes JMS</a></li><li><a shape="rect" href="http://jencks.org/">Jencks</a> is a Spring JCA container allowing you to use connection &amp; thread &amp; POJO pooling for consuming JMS in highly concurrent servers</li><li><a shape="rect" href="http://lingo.codehaus.org/">Lingo</a> is a Spring/POJO remoting layer for JMS. It allows you to reuse all the power of JMS from your POJOs without using any of the JMS APIs directly</li><li><a shape="rect" href="http://www.springframework.org/">Spring</a></li><li><a shape="rect" href="http://stomp.codehaus.org/">Stomp</a> is an open wire protocol (similar to HTTP) for communicating with MOMs from different languages. It has clients for languages like C, C#, Python, Perl, Ruby etc.</li><li><a shape="rect" href="http://xbean.org/">XBean</a> is used as the default XML configuration mechanism for ActiveMQ</li></ul></div>