CLI commands which only use a JMS connection (e.g. producer and
consumer) will retry successfully when omitting or specifying the
incorrect user and/or password. However, commands which use the core API
directly will not.
Attempt to standardize all Logger declaration to a singular variable name
which makes the code more consistent and make finding usages of loggers in
the code a bit easier.
Logger statements should use formatting syntax and let the normal framework checks take care of
checking if a logger is enabled instead of string concats and isXEnabled logger checks except
in cases there is known expense to the specifc logging message/arg preparation or passing.
Changes from myself and Robbie Gemmell.
Co-authored-by: Robbie Gemmell <robbie@apache.org>
Before we moved to Java 11 we recommended using the -XX:+AggressiveOpts
JVM tuning option. In Java 8 this was essentially equivalent to setting
these two main parameters:
- -XX:BiasedLockingStartupDelay=500 (4000 by default)
- -XX:AutoBoxCacheMax=20000 (128 by default)
BiasedLockingStartupDelay defaults to 0 in Java 11, but AutoBoxCacheMax
still defaults to 128. Therefore, we should add
-XX:AutoBoxCacheMax=20000 to restore this optimization that's been lost
since removing -XX:+AggressiveOpts.
By allowing to pass caller's classname directly to org.apache.activemq.artemis.utils.ActiveMQThreadFactory#defaultThreadFactory instead of calculating it from stack.
Running HorizontalPagingTest with these variables would make the test to fail unless these changes are applied.
export TEST_HORIZONTAL_SERVER_START_TIMEOUT=300000
export TEST_HORIZONTAL_TIMEOUT_MINUTES=120
export TEST_HORIZONTAL_PROTOCOL_LIST=OPENWIRE
export TEST_HORIZONTAL_OPENWIRE_DESTINATIONS=200
export TEST_HORIZONTAL_OPENWIRE_MESSAGES=1000
export TEST_HORIZONTAL_OPENWIRE_COMMIT_INTERVAL=100
export TEST_HORIZONTAL_OPENWIRE_RECEIVE_COMMIT_INTERVAL=0
export TEST_HORIZONTAL_OPENWIRE_MESSAGE_SIZE=20000
export TEST_HORIZONTAL_OPENWIRE_PARALLEL_SENDS=10
Commit f8b045bd2d broke the operation
retry as it introduced local variables named "user" and "password" which
overried the class-level variables of the same name. Therefore, when the
user re-enters the username and password on the command-line those
values won't actually be used when attempting to reconnect.