This is an automated email from the ASF dual-hosted git repository.

jbertram pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git


The following commit(s) were added to refs/heads/main by this push:
     new 6ec4ab6  NO-JIRA update 'versions' doc
6ec4ab6 is described below

commit 6ec4ab676601b86cb7262789ac15c2a579169a8b
Author: Justin Bertram <[email protected]>
AuthorDate: Tue Sep 14 12:00:25 2021 -0500

    NO-JIRA update 'versions' doc
    
     - Added more new features for 2.18.0.
     - Added links for new features in 2.18.0.
     - Added missing upgrade instructions for 2.18.0 & 2.16.0.
---
 docs/user-manual/en/versions.md | 154 ++++++++++++++++++++++++++++------------
 1 file changed, 109 insertions(+), 45 deletions(-)

diff --git a/docs/user-manual/en/versions.md b/docs/user-manual/en/versions.md
index af2ee59..bc00e86 100644
--- a/docs/user-manual/en/versions.md
+++ b/docs/user-manual/en/versions.md
@@ -12,33 +12,64 @@ This chapter provides the following information for each 
release:
 [Full release 
notes](https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12315920&version=12349689).
 
 Highlights:
-- Dual Mirror support improving capabilities on AMQP Mirror for Disaster 
Recovery
-- Journal Retention
-- Replication integrated with ZookeeperA
-- Broker load balancer
+- [Dual Mirror](amqp-broker-connections.md#dual-mirror-disaster-recovery)
+  support improving capabilities on AMQP Mirror for Disaster Recovery
+- [Journal Retention](persistence.md#journal-retention)
+- [Replication integrated with 
Zookeeper](ha.md#pluggable-quorum-vote-replication-configurations)
+- [Broker load balancer](broker-balancers.md)
+- [Concurrency](core-bridges.md#configuring-bridges) configuration for core
+  bridges.
+- [XPath filter expressions](filter-expressions.md#xpath) (for parity with 
+  ActiveMQ "Classic").
 
 #### Upgrading from older versions
 
-Due to [ARTEMIS-3367](https://issues.apache.org/jira/browse/ARTEMIS-3367) the 
-default setting for `verifyHost` on *core connectors* has been changed from
-`false` to `true`. This means that **core clients will now expect the `CN` or
-Subject Alternative Name values of the broker's SSL certificate to match the
-hostname in the client's URL**.
-
-This impacts all core-based clients including core JMS clients and core
-connections between cluster nodes. Although this is a "breaking" change, *not*
-performing hostname verification is a security risk (e.g. due to 
man-in-the-middle
-attacks). Enabling it by default aligns core client behavior with industry
-standards. To deal with this you can do one of the following:
+1. Due to [ARTEMIS-3367](https://issues.apache.org/jira/browse/ARTEMIS-3367) 
the
+   default setting for `verifyHost` on *core connectors* has been changed from
+   `false` to `true`. This means that **core clients will now expect the `CN` 
or
+   Subject Alternative Name values of the broker's SSL certificate to match the
+   hostname in the client's URL**.
+
+   This impacts all core-based clients including core JMS clients and core
+   connections between cluster nodes. Although this is a "breaking" change, 
*not*
+   performing hostname verification is a security risk (e.g. due to 
man-in-the-middle
+   attacks). Enabling it by default aligns core client behavior with industry
+   standards. To deal with this you can do one of the following:
+
+   - Update your SSL certificates to use a hostname which matches the hostname
+     in the client's URL. This is the recommended option with regard to 
security.
+   - Update any connector using `sslEnabled=true` to also use 
`verifyHost=false`.
+     Using this option means that you won't get the extra security of hostname
+     verification, but no certificates will need to change. This essentially
+     restores the previous default behavior.
+
+   For additional details about please refer to section 3.1 of [RFC 2818 "HTTP 
over TLS"](https://datatracker.ietf.org/doc/html/rfc2818#section-3.1).
+
+2. Due to [ARTEMIS-3117](https://issues.apache.org/jira/browse/ARTEMIS-3117)
+   SSL keystore and truststores are no longer reloaded automatically.
+   Previously an instance of `javax.net.ssl.SSLContext` was created for *every*
+   connection. This would implicitly pick up any changes to the keystore and 
+   truststore for any new connection. However, this was grossly inefficient and
+   therefore didn't scale well with lots of connections. The behavior was
+   changed so that just one `javax.net.ssl.SSLContext` is created for each
+   `acceptor`. However, one can still reload keystores & truststores from disk
+   without restarting the broker. Simply use the `reload` management operation
+   on the `acceptor`. This is available via JMX, the web console, Jolokia, etc.
+
+   Here's an example `curl` command you can use with Jolokia to invoke the
+   `artemis` acceptor's `reload` operation:
+   ```bash
+   curl --user admin:admin --header "Content-Type: application/json" --request 
POST --data '{"type":"exec", 
"mbean":"org.apache.activemq.artemis:broker=\"0.0.0.0\",component=acceptors,name=\"artemis\"",
 "operation":"reload"}' http://localhost:8161/console/jolokia/exec
+   ```
+   Of course you'll want to adjust the username & password as well as the
+   broker and acceptor names for your environment.
 
-- Update your SSL certificates to use a hostname which matches the hostname
-  in the client's URL. This is the recommended option with regard to security.
-- Update any connector using `sslEnabled=true` to also use `verifyHost=false`.
-  Using this option means that you won't get the extra security of hostname
-  verification, but no certificates will need to change. This essentially 
-  restores the previous default behavior.
+3. The "rate" metric for queues was removed from the web console via 
[ARTEMIS-3397](https://issues.apache.org/jira/browse/ARTEMIS-3397).
+   This was a follow-up from 
[ARTEMIS-2909](https://issues.apache.org/jira/browse/ARTEMIS-2909)
+   in 2.16.0 (referenced in the [upgrade instructions below](#2160)). The
+   "rate" metric mistakenly left visible on the web console after it was
+   removed from the management API.
 
-For additional details about please refer to section 3.1 of [RFC 2818 "HTTP 
over TLS"](https://datatracker.ietf.org/doc/html/rfc2818#section-3.1).
 
 ## 2.17.0
 
@@ -73,29 +104,62 @@ Highlights:
 
 #### Upgrading from older versions
 
-Due to [ARTEMIS-2893](https://issues.apache.org/jira/browse/ARTEMIS-2893) the
-fundamental way user management was implemented had to change to avoid data
-integrity issues related to concurrent modification. From a user's perspective
-two main things changed:
-
-1. User management is no longer possible using the `artemis user` commands
-   when the broker is **offline**. Of course users are still free to modify the
-   properties files directly in this situation.
-2. The parameters of the `artemis user` commands changed. Instead of using
-   something like this:
-   ```sh
-   ./artemis user add --user guest --password guest --role admin
-   ``` 
-   Use this instead:
-   ```sh
-   ./artemis user add --user-command-user guest --user-command-password guest 
--role admin
-   ```
-   In short, use `user-command-user` in lieu of `user` and 
`user-command-password`
-   in lieu of `password`. Both `user` and `password` parameters now apply to 
the
-   connection used to send the command to the broker.
-   
-   For additional details see 
[ARTEMIS-2893](https://issues.apache.org/jira/browse/ARTEMIS-2893)
-   and [ARTEMIS-3010](https://issues.apache.org/jira/browse/ARTEMIS-3010) 
+1. Due to [ARTEMIS-2893](https://issues.apache.org/jira/browse/ARTEMIS-2893) 
the
+   fundamental way user management was implemented had to change to avoid data
+   integrity issues related to concurrent modification. From a user's 
perspective
+   two main things changed:
+
+   1. User management is no longer possible using the `artemis user` commands
+      when the broker is **offline**. Of course users are still free to modify 
the
+      properties files directly in this situation.
+   2. The parameters of the `artemis user` commands changed. Instead of using
+      something like this:
+      ```sh
+      ./artemis user add --user guest --password guest --role admin
+      ``` 
+      Use this instead:
+      ```sh
+      ./artemis user add --user-command-user guest --user-command-password 
guest --role admin
+         ```
+      In short, use `user-command-user` in lieu of `user` and 
`user-command-password`
+      in lieu of `password`. Both `user` and `password` parameters now apply 
to the
+      connection used to send the command to the broker.
+      
+      For additional details see 
[ARTEMIS-2893](https://issues.apache.org/jira/browse/ARTEMIS-2893)
+      and [ARTEMIS-3010](https://issues.apache.org/jira/browse/ARTEMIS-3010)
+
+2. Due to [ARTEMIS-2909](https://issues.apache.org/jira/browse/ARTEMIS-2909) 
+   the "rate" metric was removed from the management API for queues. In short,
+   the `org.apache.activemq.artemis.core.server.Queue#getRate` method is for
+   slow-consumer detection and is designed for _internal_ use only.
+
+   Furthermore, it's too opaque to be trusted by a remote user as it only
+   returns the number of message added to the queue since *the last time
+   it was called*. The problem here is that the user calling it doesn't
+   know when it was invoked last. Therefore, they could be getting the
+   rate of messages added for the last 5 minutes or the last 5
+   milliseconds. This can lead to inconsistent and misleading results.
+
+   There are three main ways for users to track rates of message
+   production and consumption (in recommended order):
+
+   1. Use a [metrics](metrics.md) plugin. This is the most feature-rich and
+      flexible way to track broker metrics, although it requires tools (e.g.
+      Prometheus) to store the metrics and display them (e.g. Grafana).
+
+   2. Invoke the `getMessageCount()` and `getMessagesAdded()` management
+      methods and store the returned values along with the time they were
+      retrieved. A time-series database is a great tool for this job. This is
+      exactly what tools like Prometheus do. That data can then be used to
+      create informative graphs, etc. using tools like Grafana. Of course, one
+      can skip all the tools and just do some simple math to calculate rates
+      based on the last time the counts were retrieved.
+
+   3. Use the broker's [message counters](management.md#message-counters).
+      Message counters are the broker's simple way of providing historical
+      information about the queue. They provide similar results to the previous
+      solutions, but with less flexibility since they only track data while the
+      broker is up and there's not really any good options for graphing.
 
 ## 2.15.0
 

Reply via email to