<div class="wiki-content maincontent"><h2>New and Noteworthy</h2>

<p>This is the 4.0 release of Apache ActiveMQ. This release of Apache ActiveMQ includes a large number of <link><page ri:content-title="Changes in 4.0"></page><link-body>new features</link-body></link> such as <link><page ri:content-title="MasterSlave"></page></link> and <link><page ri:content-title="Message Groups"></page></link> together with numerous bug fixes.</p>

<h3>Warnings</h3>

<p>When upgrading from a previous release you are advised to clear down the journal files and persistent database first before upgrading to this jar as the binary format of messages is not compatible with 3.x or earlier 4.0 milestone releases. </p>

<h3>Known issues</h3>

<p>Some folks have found issues with acknowledgements, particularly when using auto-ack mode. This has been fixed in 4.0.1 which will be released shortly. Until then we recommend you disable <link><page ri:content-title="Connection Configuration URI"></page><link-body>optimizeAcknowledge</link-body></link>. e.g. connect via</p>

<structured-macro ac:macro-id="1c57366d-fb90-4fe9-b78b-95402c62f258" ac:name="code" ac:schema-version="1"><plain-text-body>
tcp://localhost:61616?jms.optimizeAcknowledge=false
</plain-text-body></structured-macro>

<p>The source distributions do not build as is anymore due to changes in the way the maven repo is now setup at Apache.  You must first apply the following <link><attachment ri:filename="amq4-build.patch"></attachment><link-body>patch</link-body></link> before doing the build.  You will need to download the patch and apply it using the patch command.</p>

<structured-macro ac:macro-id="91f79a80-5459-4350-a9df-c59951da64a7" ac:name="code" ac:schema-version="1"><plain-text-body>
cd ${path-to-activemq-source-distro}
patch -p 0 &lt; ${path-to-amq4-build.patch}
</plain-text-body></structured-macro>

<h3>What has changed</h3>

<p>The 4.x branch of Apache ActiveMQ has now moved to the Apache Incubator so the package names have changed from org.activemq to org.apache.activemq. For a full list see the <link><page ri:content-title="Changes in 4.0"></page></link>.</p>


<h2>Download Here</h2>
<table><tbody><tr><th colspan="1" rowspan="1"><p>Download</p></th><th colspan="1" rowspan="1"><p>Description</p></th></tr><tr><td colspan="1" rowspan="1"><p><a shape="rect" href="http://people.apache.org/repository/incubator-activemq/distributions/incubator-activemq-4.0.zip">incubator-activemq-4.0.zip</a></p></td><td colspan="1" rowspan="1"><p>Binary Distribution in zip package</p></td></tr><tr><td colspan="1" rowspan="1"><p><a shape="rect" href="http://people.apache.org/repository/incubator-activemq/distributions/incubator-activemq-4.0-src.zip">incubator-activemq-4.0-src.zip</a></p></td><td colspan="1" rowspan="1"><p>Source Distribution in zip package</p></td></tr><tr><td colspan="1" rowspan="1"><p><a shape="rect" href="http://people.apache.org/repository/incubator-activemq/distributions/incubator-activemq-4.0.tar.gz">incubator-activemq-4.0.tar.gz</a></p></td><td colspan="1" rowspan="1"><p>Binary Distribution in gz package</p></td></tr><tr><td colspan="1" rowspan="1"><p><a shape="rect" href="http://people.apache.org/repository/incubator-activemq/distributions/incubator-activemq-4.0-src.tar.gz">incubator-activemq-4.0-src.tar.gz</a></p></td><td colspan="1" rowspan="1"><p>Source Distribution in gz package</p></td></tr></tbody></table>


<h2>SVN Tag Checkout</h2>
<structured-macro ac:macro-id="497437e5-e037-401e-a9dd-847fdc296bd3" ac:name="code" ac:schema-version="1"><plain-text-body>
svn co https://svn.apache.org/repos/asf/incubator/activemq/tags/activemq-4.0
</plain-text-body></structured-macro>

<h2>Changelog</h2>
<p>For a more detailed view of new features and bug fixes, see the <a shape="rect" href="http://issues.apache.org/activemq/secure/IssueNavigator.jspa?reset=true&amp;pid=10520&amp;fixfor=11660">release notes</a></p>

<structured-macro ac:macro-id="8b7fb8e1-5345-4ccd-b51b-6c43b7304faf" ac:name="jiraissues" ac:schema-version="1"><parameter ac:name="url"><url ri:value="http://issues.apache.org/activemq/secure/IssueNavigator.jspa?view=rss&amp;&amp;pid=10520&amp;fixfor=11660&amp;sorter/field=issuekey&amp;sorter/order=DESC&amp;tempMax=25&amp;reset=true&amp;decorator=none"></url></parameter></structured-macro>

<p>Also see the previous <link><page ri:content-title="ActiveMQ 4.0 RC2 Release"></page></link></p></div>

