<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  Architecture
-->
<html lang="en">
<head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
    <meta content="ActiveMQ's next generation of messaging" name="description"/>
    <meta content="messaging,stomp,jms,activemq" name="keywords"/>
    <meta content="ActiveMQ" name="author"/>
    <link type="text/css" rel="stylesheet" href="styles/impact/css/pygmentize.css"/>
    <link type="text/css" rel="stylesheet" href="styles/impact/css/site.css"/>

    <style type='text/css'>
        /* <![CDATA[ */
        .download {
        font-size: 80%;
        }
        table.download { width: 100%;}
        table.download tr td {
        border: 1px solid #ccc;
        padding: .5em;
        }
        /* ]]> */
    </style>

    <title>ActiveMQ Artemis Release Notes 2.1.0</title>
</head>
<body>
<div id="navigation">
    <div class="wrapper">
        <ul>
            <li><a href="index.html">ActiveMQ Artemis</a></li>
            <li><a href="docs.html">Documentation</a></li>
            <li><a href="download.html">Download</a></li>
        </ul>
    </div>
</div>
<div id="overview">
    <div class="wrapper">
        <div class="logo">
            <img src="images/activemq-logo.png" alt="ActiveMQ logo"/>
        </div>
        <div class="message">
            <h1>ActiveMQ Artemis</h1>
        </div>
    </div>
</div>
<div id="content">
    <div class="wrapper">
        <h2 id="release-notes---apache-activemq-artemis-2.1.0">Release Notes - Apache ActiveMQ Artemis 2.1.0</h2>
    </div>
    <div class="wrapper">
        <p>A complete list of JIRAs for the 2.1.0 release can be found <a href=https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315920&version=12339963>here.</a>
            </p>
        <p>        Release Notes - ActiveMQ Artemis - Version 2.1.0</p>



        <h2>        Bug
        </h2>
        <ul>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-56'>ARTEMIS-56</a>] -         the message-id of AMQP messages gets cleared within the broker
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-57'>ARTEMIS-57</a>] -         the &#39;to&#39; field of AMQP messages gets cleared within the broker
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-59'>ARTEMIS-59</a>] -         AMQP messages published transactionally should be accepted using a TransactionalState
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-60'>ARTEMIS-60</a>] -         Transactionally consumed AMQP messages are settled without any disposition state.
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-267'>ARTEMIS-267</a>] -         AMQP messages without a Header section get persisted despite being non-durable
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-457'>ARTEMIS-457</a>] -         Scale down with live-only ha policy failing
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-547'>ARTEMIS-547</a>] -         Authorize AMQP sender/receive on link attach
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-688'>ARTEMIS-688</a>] -         java.util.ConcurrentModificationException when sending message to JMS client
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-712'>ARTEMIS-712</a>] -         Artemis does not support local transactions properly over AMQP
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-775'>ARTEMIS-775</a>] -         AMQP: Message seems to be delivered twice when receiver close with pending messages
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-826'>ARTEMIS-826</a>] -         MQTT with a long password field causes NPE exception
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-834'>ARTEMIS-834</a>] -         Management over AMQP throws exception
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-861'>ARTEMIS-861</a>] -         Artemis 1.5 compilation fails with IBM JDK
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-864'>ARTEMIS-864</a>] -         Sending to a destroyed temp queue didn&#39;t get exception
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-874'>ARTEMIS-874</a>] -         ThreadGroup memory leak
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-908'>ARTEMIS-908</a>] -         AMQP flow control misses unblock during heavy load
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-925'>ARTEMIS-925</a>] -         broker logs connection failure warning when client closes AMQP connection
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-956'>ARTEMIS-956</a>] -         exception when messages are settled separately
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1012'>ARTEMIS-1012</a>] -         AMQP TX is redelivering message that are still aquired
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1013'>ARTEMIS-1013</a>] -         AMQP Release does not redelivery message if flow or new message does not arrive
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1024'>ARTEMIS-1024</a>] -         Management operation causes ClassNotFoundException
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1031'>ARTEMIS-1031</a>] -         Prefixes no longer working with Core Client
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1033'>ARTEMIS-1033</a>] -         NPE on PageTransactions during startup in case of previous TX Failures
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1034'>ARTEMIS-1034</a>] -         [AMQP] non-durable subscription queue not ended on link close
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1039'>ARTEMIS-1039</a>] -         AMQP: Broker does not replenish the credit for the receiver link of it transaction coordinator
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1041'>ARTEMIS-1041</a>] -         AMQP: Broker not respecting absolute expiry time
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1043'>ARTEMIS-1043</a>] -         NettyConnector not working with IPv6 address
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1044'>ARTEMIS-1044</a>] -         Stackoverflow on AMQP sends
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1046'>ARTEMIS-1046</a>] -         Transaction issues over AMQP
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1048'>ARTEMIS-1048</a>] -         Filter is not working with AMQP Unsigned Types
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1051'>ARTEMIS-1051</a>] -         Server Session is not thread safe
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1053'>ARTEMIS-1053</a>] -         Use credentials when checking for active server
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1057'>ARTEMIS-1057</a>] -         Lower log level of AMQ214023
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1064'>ARTEMIS-1064</a>] -         Getting &quot;deliveryModes&quot; of an Address from a client via management causes AMQ119034
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1065'>ARTEMIS-1065</a>] -         Bring back in v2.0.x the API that allows clients to get the list of JMS Topics and Queue
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1067'>ARTEMIS-1067</a>] -         Wrong format string specifiers in exception messages
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1068'>ARTEMIS-1068</a>] -         Routing for JMS over AMQP is broken
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1069'>ARTEMIS-1069</a>] -         AMQP: Thread unsafe proton usage found
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1072'>ARTEMIS-1072</a>] -         ./artemis create --java-opts will have options on bin instead of etc
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1074'>ARTEMIS-1074</a>] -         Acceptors and Connectors that enable SSL don’t start up while using a password codec
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1076'>ARTEMIS-1076</a>] -         Broken links in User Manual
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1078'>ARTEMIS-1078</a>] -         Thread pool executor occasionally misses to create a new thread
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1079'>ARTEMIS-1079</a>] -         CLI option for paging/blocking
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1082'>ARTEMIS-1082</a>] -         OpenWire protocol race condition on create queue
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1083'>ARTEMIS-1083</a>] -         WARNS are printed on start when no native persister is found for certain protocols
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1085'>ARTEMIS-1085</a>] -         JDBC store does handle store lineup properly
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1086'>ARTEMIS-1086</a>] -         Incorrect addition of SimpleString object to ApplicationProperties
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1089'>ARTEMIS-1089</a>] -         Backup sync-up is slow when paging
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1090'>ARTEMIS-1090</a>] -         Message not expired if absolute expiry time is 0 and ttl is set
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1092'>ARTEMIS-1092</a>] -         Validated user + AMQP throwing exception
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1093'>ARTEMIS-1093</a>] -         Full qualified queue name support
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1094'>ARTEMIS-1094</a>] -         Replica can&#39;t connect to live via group-name when group size &gt; 1
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1097'>ARTEMIS-1097</a>] -         Message priority ordering not being respected
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1100'>ARTEMIS-1100</a>] -         AMQPMessage doesn&#39;t store header
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1101'>ARTEMIS-1101</a>] -         Get of UserID and Timestamp incorrect in AMQPMessage
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1105'>ARTEMIS-1105</a>] -         Null pointer when replicating paged messages
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1107'>ARTEMIS-1107</a>] -         fix and Test AddressControl.sendMessage()
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1108'>ARTEMIS-1108</a>] -         Shared-store with AIO fails to lock lockfile on NFS shares
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1111'>ARTEMIS-1111</a>] -         Broker thread hangs if an AMQP consumer is closed during delivery
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1113'>ARTEMIS-1113</a>] -         Stomp doesn&#39;t deal with management address appropriately
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1114'>ARTEMIS-1114</a>] -         Journal Compactor possibly losing records
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1121'>ARTEMIS-1121</a>] -         Expiry scanner under load might break queue
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1122'>ARTEMIS-1122</a>] -         ActiveMQJAASSecurityManager class loading issue
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1123'>ARTEMIS-1123</a>] -         Cleanup and add new AMQP protocol handling tests
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1128'>ARTEMIS-1128</a>] -         QueueControlImpl.sendMessage() fixes
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1130'>ARTEMIS-1130</a>] -         Log disallowed SSL protocols just once
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1132'>ARTEMIS-1132</a>] -         Creating an AMQP resources when security is configured can hang or return wrong error type
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1134'>ARTEMIS-1134</a>] -         Internal errors in AMQP protocol handler can lead to stalled connection
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1135'>ARTEMIS-1135</a>] -         Overflows during integer addition or multiplication
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1137'>ARTEMIS-1137</a>] -         Address configured without routing type causes exception on broker restart
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1138'>ARTEMIS-1138</a>] -         OSGI Netty Epoll Fix
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1140'>ARTEMIS-1140</a>] -         Avoid Queue lock on queueQuery
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1150'>ARTEMIS-1150</a>] -         Logging config won&#39;t work when server has spaces
            </li>
        </ul>

        <h2>        Improvement
        </h2>
        <ul>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-590'>ARTEMIS-590</a>] -         Allow NettyConnector to use the default SSL Context
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-904'>ARTEMIS-904</a>] -         Remove cyclic dependencies from artemis-cli
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1037'>ARTEMIS-1037</a>] -         Doc for the MAPPED journalType
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1038'>ARTEMIS-1038</a>] -         Make use of Proton/Delivery.available and upgrade proton
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1042'>ARTEMIS-1042</a>] -         Support AMQP failover lists
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1045'>ARTEMIS-1045</a>] -         Performance improvement on AMQP
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1047'>ARTEMIS-1047</a>] -         Improve GC Settings
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1052'>ARTEMIS-1052</a>] -         Dealing with Expires and DLQ properly over AMQP
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1054'>ARTEMIS-1054</a>] -         JVM Monitoring pauses logs
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1056'>ARTEMIS-1056</a>] -         Performance improvements over AMQP
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1059'>ARTEMIS-1059</a>] -         DEBUG option on Paging counters
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1073'>ARTEMIS-1073</a>] -         Exposing AMQP Credits, and setting the default credits to 1000
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1075'>ARTEMIS-1075</a>] -         Add Routing Type to QueueControl management API
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1077'>ARTEMIS-1077</a>] -         Improving InVM and Buffer usage
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1084'>ARTEMIS-1084</a>] -         Oracle12C has table name size limit of 30 chars.  When using paging and a table name of &gt;10 chars.  Artemis will work fine, until it&#39;s Page UUID size goes above 20 chars.  Then start failing to page.
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1096'>ARTEMIS-1096</a>] -         Load tests exhaust memory if global-max-size is not set
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1102'>ARTEMIS-1102</a>] -         Implement cert-based auth for OpenWire
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1110'>ARTEMIS-1110</a>] -         AMQP Transaction controller can reuse a single buffer for decoding commands
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1117'>ARTEMIS-1117</a>] -         Improve IO Resilience to failures
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1118'>ARTEMIS-1118</a>] -         AMQP is missing OperationContext callbacks
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1119'>ARTEMIS-1119</a>] -         Flow control on ProtonHandler
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1124'>ARTEMIS-1124</a>] -         JDBC Network Timeout configuration
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1127'>ARTEMIS-1127</a>] -         AMQP: Match client SenderSettleMode instead of always defaulting to MIXED
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1136'>ARTEMIS-1136</a>] -         Improve UnpooledUnsafeDirectByteBufWrapper
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1141'>ARTEMIS-1141</a>] -         Validate Karaf features using the karaf plugin
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1144'>ARTEMIS-1144</a>] -         Include SL4J-&gt;JUL logger bridge
            </li>
        </ul>

        <h2>        New Feature
        </h2>
        <ul>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-639'>ARTEMIS-639</a>] -         Make credit refresh size and refresh threshold configurable on AMQP protocol
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-898'>ARTEMIS-898</a>] -         Artemis Plugin Support
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-994'>ARTEMIS-994</a>] -         Support Netty Native Epoll on Linux
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1080'>ARTEMIS-1080</a>] -         Implement AMQP::reject
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1081'>ARTEMIS-1081</a>] -         Implement AMQP:undeliverableHere
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1087'>ARTEMIS-1087</a>] -         Allow Buffer Pooling to be configurable for InVM Transport
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1116'>ARTEMIS-1116</a>] -         map ldap roles to local artemis roles
            </li>
        </ul>

        <h2>        Task
        </h2>
        <ul>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-794'>ARTEMIS-794</a>] -         AMQP: Modified and Rjected Outcomes are not being handled correctly
            </li>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-795'>ARTEMIS-795</a>] -         AMQP: Dynamic Node handling does not respect lifetime policies
            </li>
        </ul>

        <h2>        Test
        </h2>
        <ul>
            <li>[<a href='https://issues.apache.org/jira/browse/ARTEMIS-1139'>ARTEMIS-1139</a>] -         Add some tests for AMQP over websockets
            </li>
        </ul>


    </div>
</div>
</body>
</html>
