This is an automated email from the ASF dual-hosted git repository.
clebertsuconic 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 db04425978 ARTEMIS-5601 auto created queues in AMQP are not waiting a
sync
db04425978 is described below
commit db04425978c318abeca026b54e34cdd8afe68c1f
Author: Clebert Suconic <[email protected]>
AuthorDate: Tue Jul 29 16:58:24 2025 -0400
ARTEMIS-5601 auto created queues in AMQP are not waiting a sync
The protocol should recover the OperationContext before the auto create.
---
.../amqp/proton/AMQPConnectionContext.java | 73 ++++++++------
.../tests/soak/paging/HorizontalPagingTest.java | 109 ++++++++++++---------
.../src/test/scripts/longrun-parameters.sh | 45 +++------
tests/soak-tests/src/test/scripts/parameters.sh | 28 ++----
4 files changed, 127 insertions(+), 128 deletions(-)
diff --git
a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/AMQPConnectionContext.java
b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/AMQPConnectionContext.java
index 0982eff748..82c5132ad7 100644
---
a/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/AMQPConnectionContext.java
+++
b/artemis-protocols/artemis-amqp-protocol/src/main/java/org/apache/activemq/artemis/protocol/amqp/proton/AMQPConnectionContext.java
@@ -39,6 +39,7 @@ import io.netty.buffer.ByteBuf;
import io.netty.channel.EventLoop;
import org.apache.activemq.artemis.api.core.ActiveMQSecurityException;
import org.apache.activemq.artemis.api.core.SimpleString;
+import org.apache.activemq.artemis.core.persistence.OperationContext;
import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants;
import org.apache.activemq.artemis.core.security.CheckType;
import org.apache.activemq.artemis.core.security.SecurityAuth;
@@ -360,7 +361,6 @@ public class AMQPConnectionContext extends
ProtonInitializable implements EventH
public AMQPSessionContext getSessionExtension(Session realSession) throws
ActiveMQAMQPException {
AMQPSessionContext sessionExtension = sessions.get(realSession);
if (sessionExtension == null) {
- // how this is possible? Log a warn here
sessionExtension = newSessionExtension(realSession);
realSession.setContext(sessionExtension);
sessions.put(realSession, sessionExtension);
@@ -410,43 +410,52 @@ public class AMQPConnectionContext extends
ProtonInitializable implements EventH
protected void remoteLinkOpened(Link link) throws Exception {
final AMQPSessionContext protonSession =
getSessionExtension(link.getSession());
- final Runnable runnable =
link.attachments().get(AMQP_LINK_INITIALIZER_KEY, Runnable.class);
- if (runnable != null) {
- link.attachments().set(AMQP_LINK_INITIALIZER_KEY, Runnable.class,
null);
- runnable.run();
- return;
- }
+ // The operation context is needed in case there are auto-created
destinations.
+ // We need to ensure the binding storage operation is complete before
sending the remoteLinkOpened response.
+ OperationContext oldContext = protonSession.sessionSPI.recoverContext();
- if (link.getLocalState() == EndpointState.ACTIVE) { // if already
active it's probably from the AMQP bridge and hence we just ignore it
- return;
- }
+ try {
- link.setSource(link.getRemoteSource());
- link.setTarget(link.getRemoteTarget());
+ final Runnable runnable =
link.attachments().get(AMQP_LINK_INITIALIZER_KEY, Runnable.class);
+ if (runnable != null) {
+ link.attachments().set(AMQP_LINK_INITIALIZER_KEY, Runnable.class,
null);
+ runnable.run();
+ return;
+ }
- if (link instanceof Receiver receiver) {
- if (link.getRemoteTarget() instanceof Coordinator coordinator) {
- protonSession.addTransactionHandler(coordinator, receiver);
- } else if (isReplicaTarget(receiver)) {
- handleReplicaTargetLinkOpened(protonSession, receiver);
- } else if (isFederationControlLink(receiver)) {
- handleFederationControlLinkOpened(protonSession, receiver);
- } else if (isFederationEventLink(receiver)) {
- protonSession.addFederationEventProcessor(receiver);
- } else {
- protonSession.addReceiver(receiver);
+ if (link.getLocalState() == EndpointState.ACTIVE) { // if already
active it's probably from the AMQP bridge and hence we just ignore it
+ return;
}
- } else {
- final Sender sender = (Sender) link;
- if (isFederationAddressReceiver(sender)) {
- protonSession.addFederationAddressSender(sender);
- } else if (isFederationQueueReceiver(sender)) {
- protonSession.addFederationQueueSender(sender);
- } else if (isFederationEventLink(sender)) {
- protonSession.addFederationEventDispatcher(sender);
+
+ link.setSource(link.getRemoteSource());
+ link.setTarget(link.getRemoteTarget());
+
+ if (link instanceof Receiver receiver) {
+ if (link.getRemoteTarget() instanceof Coordinator coordinator) {
+ protonSession.addTransactionHandler(coordinator, receiver);
+ } else if (isReplicaTarget(receiver)) {
+ handleReplicaTargetLinkOpened(protonSession, receiver);
+ } else if (isFederationControlLink(receiver)) {
+ handleFederationControlLinkOpened(protonSession, receiver);
+ } else if (isFederationEventLink(receiver)) {
+ protonSession.addFederationEventProcessor(receiver);
+ } else {
+ protonSession.addReceiver(receiver);
+ }
} else {
- protonSession.addSender(sender);
+ final Sender sender = (Sender) link;
+ if (isFederationAddressReceiver(sender)) {
+ protonSession.addFederationAddressSender(sender);
+ } else if (isFederationQueueReceiver(sender)) {
+ protonSession.addFederationQueueSender(sender);
+ } else if (isFederationEventLink(sender)) {
+ protonSession.addFederationEventDispatcher(sender);
+ } else {
+ protonSession.addSender(sender);
+ }
}
+ } finally {
+ protonSession.sessionSPI.resetContext(oldContext);
}
}
diff --git
a/tests/soak-tests/src/test/java/org/apache/activemq/artemis/tests/soak/paging/HorizontalPagingTest.java
b/tests/soak-tests/src/test/java/org/apache/activemq/artemis/tests/soak/paging/HorizontalPagingTest.java
index bd09d9b59e..bf071c5f69 100644
---
a/tests/soak-tests/src/test/java/org/apache/activemq/artemis/tests/soak/paging/HorizontalPagingTest.java
+++
b/tests/soak-tests/src/test/java/org/apache/activemq/artemis/tests/soak/paging/HorizontalPagingTest.java
@@ -30,9 +30,7 @@ import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.TextMessage;
import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
+import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
@@ -40,8 +38,9 @@ import java.util.concurrent.atomic.AtomicInteger;
import org.apache.activemq.artemis.tests.soak.SoakTestBase;
import org.apache.activemq.artemis.tests.util.CFUtil;
+import org.apache.activemq.artemis.util.ServerUtil;
+import org.apache.activemq.artemis.utils.FileUtil;
import org.apache.activemq.artemis.utils.RandomUtil;
-import org.apache.activemq.artemis.utils.ReusableLatch;
import org.apache.activemq.artemis.utils.TestParameters;
import org.apache.activemq.artemis.cli.commands.helper.HelperCreate;
import org.junit.jupiter.api.BeforeAll;
@@ -61,10 +60,12 @@ public class HorizontalPagingTest extends SoakTestBase {
private static final String TEST_NAME = "HORIZONTAL";
private static final boolean TEST_ENABLED =
Boolean.parseBoolean(testProperty(TEST_NAME, "TEST_ENABLED", "true"));
- private static final int SERVER_START_TIMEOUT = testProperty(TEST_NAME,
"SERVER_START_TIMEOUT", 300_000);
- private static final int TIMEOUT_MINUTES = testProperty(TEST_NAME,
"TIMEOUT_MINUTES", 120);
- private static final String PROTOCOL_LIST = testProperty(TEST_NAME,
"PROTOCOL_LIST", "OPENWIRE,CORE,AMQP");
+ private static final int SERVER_START_TIMEOUT = testProperty(TEST_NAME,
"SERVER_START_TIMEOUT", 20_000);
+ private static final int TIMEOUT_MINUTES = testProperty(TEST_NAME,
"TIMEOUT_MINUTES", 5);
private static final int PRINT_INTERVAL = testProperty(TEST_NAME,
"PRINT_INTERVAL", 100);
+ // This property is useful if you want to validate a setup on a different
data folder, for example a remote directory on a NFS server or anything like
that
+ private static final String DATA_FOLDER = testProperty(TEST_NAME,
"DATA_FOLDER", null);
+ private static final int EXECUTOR_SIZE = testProperty(TEST_NAME,
"EXECUTOR_SIZE", 50);
private final int DESTINATIONS;
private final int MESSAGES;
@@ -72,7 +73,6 @@ public class HorizontalPagingTest extends SoakTestBase {
// if 0 will use AUTO_ACK
private final int RECEIVE_COMMIT_INTERVAL;
private final int MESSAGE_SIZE;
- private final int PARALLEL_SENDS;
private static final Logger logger =
LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
@@ -84,35 +84,34 @@ public class HorizontalPagingTest extends SoakTestBase {
File serverLocation = getFileServerLocation(SERVER_NAME_0);
deleteDirectory(serverLocation);
+ File dataFolder = null;
+ if (DATA_FOLDER != null) {
+ dataFolder = new File(DATA_FOLDER);
+ if (dataFolder.exists()) {
+ deleteDirectory(dataFolder);
+ }
+ }
+
HelperCreate cliCreateServer = helperCreate();
cliCreateServer.setRole("amq").setUser("admin").setPassword("admin").setAllowAnonymous(true).setNoWeb(false).setArtemisInstance(serverLocation);
- // some limited memory to make it more likely to fail
cliCreateServer.setArgs("--java-memory", "2g");
-
cliCreateServer.setConfiguration("./src/main/resources/servers/subscriptionPaging");
+
cliCreateServer.setConfiguration("./src/main/resources/servers/horizontalPaging");
cliCreateServer.createServer();
- }
- }
- public static List<String> parseProtocolList() {
- String[] protocols = PROTOCOL_LIST.split(",");
-
- List<String> protocolList = new ArrayList<>();
- for (String str : protocols) {
- logger.info("Adding {} to the list for the test", str);
- protocolList.add(str);
+ if (dataFolder != null) {
+ assertTrue(FileUtil.findReplace(new
File(getFileServerLocation(SERVER_NAME_0), "/etc/broker.xml"), "data/",
dataFolder.getAbsolutePath() + "/"));
+ }
}
-
- return protocolList;
}
public HorizontalPagingTest() {
- DESTINATIONS = TestParameters.testProperty(TEST_NAME, "DESTINATIONS", 5);
- MESSAGES = TestParameters.testProperty(TEST_NAME, "MESSAGES", 1000);
+ DESTINATIONS = TestParameters.testProperty(TEST_NAME, "DESTINATIONS",
100);
+ MESSAGES = TestParameters.testProperty(TEST_NAME, "MESSAGES", 100);
COMMIT_INTERVAL = TestParameters.testProperty(TEST_NAME,
"COMMIT_INTERVAL", 100);
// if 0 will use AUTO_ACK
RECEIVE_COMMIT_INTERVAL = TestParameters.testProperty(TEST_NAME,
"RECEIVE_COMMIT_INTERVAL", 100);
MESSAGE_SIZE = TestParameters.testProperty(TEST_NAME, "MESSAGE_SIZE",
10_000);
- PARALLEL_SENDS = TestParameters.testProperty(TEST_NAME,
"PARALLEL_SENDS", 5);
+
}
Process serverProcess;
@@ -125,29 +124,43 @@ public class HorizontalPagingTest extends SoakTestBase {
serverProcess = startServer(SERVER_NAME_0, 0, SERVER_START_TIMEOUT);
}
+ /// ///////////////////////////////////////////////////
+ /// It is important to keep separate tests here
+ /// as the server has to be killed within the timeframe of protocol being
executed
+ /// to validate proper callbacks are in place
+ @Test
+ public void testHorizontalAMQP() throws Exception {
+ testHorizontal("AMQP");
+ }
+
+ @Test
+ public void testHorizontalCORE() throws Exception {
+ testHorizontal("CORE");
+ }
+
@Test
- public void testHorizontal() throws Exception {
- Collection<String> protocolList = parseProtocolList();
+ public void testHorizontalOPENWIRE() throws Exception {
+ testHorizontal("OPENWIRE");
+ }
+
+ private void testHorizontal(String protocol) throws Exception {
AtomicInteger errors = new AtomicInteger(0);
- ExecutorService service = Executors.newFixedThreadPool(DESTINATIONS *
protocolList.size());
+ ExecutorService service = Executors.newFixedThreadPool(EXECUTOR_SIZE);
runAfter(service::shutdownNow);
String text = RandomUtil.randomAlphaNumericString(MESSAGE_SIZE);
- ReusableLatch latchDone = new ReusableLatch(0);
-
- for (String protocol : protocolList) {
- String protocolUsed = protocol;
+ {
+ CountDownLatch latchDone = new CountDownLatch(DESTINATIONS);
ConnectionFactory factory = CFUtil.createConnectionFactory(protocol,
"tcp://localhost:61616");
Connection connection = factory.createConnection();
runAfter(connection::close);
for (int i = 0; i < DESTINATIONS; i++) {
- latchDone.countUp();
Session session = connection.createSession(true,
Session.SESSION_TRANSACTED);
- Queue queue = session.createQueue("queue_" + i + protocolUsed);
+ Queue queue = session.createQueue("queue_" + i + "_" + protocol);
service.execute(() -> {
try {
logger.info("*******************************************************************************************************************************\ndestination
{}", queue.getQueueName());
@@ -172,25 +185,24 @@ public class HorizontalPagingTest extends SoakTestBase {
}
});
}
+ assertTrue(latchDone.await(TIMEOUT_MINUTES, TimeUnit.MINUTES));
}
- assertTrue(latchDone.await(TIMEOUT_MINUTES, TimeUnit.MINUTES));
-
killServer(serverProcess, true);
-
- serverProcess = startServer(SERVER_NAME_0, 0, SERVER_START_TIMEOUT);
+ serverProcess = startServer(SERVER_NAME_0, 0, -1);
+ assertTrue(ServerUtil.waitForServerToStart(0, SERVER_START_TIMEOUT));
+ assertEquals(0, errors.get());
AtomicInteger completedFine = new AtomicInteger(0);
- for (String protocol : protocolList) {
- String protocolUsed = protocol;
+ {
+ CountDownLatch latchDone = new CountDownLatch(DESTINATIONS);
ConnectionFactory factory = CFUtil.createConnectionFactory(protocol,
"tcp://localhost:61616");
Connection connectionConsumer = factory.createConnection();
runAfter(connectionConsumer::close);
for (int i = 0; i < DESTINATIONS; i++) {
- latchDone.countUp();
int destination = i;
service.execute(() -> {
try {
@@ -202,10 +214,13 @@ public class HorizontalPagingTest extends SoakTestBase {
sessionConsumer = connectionConsumer.createSession(true,
Session.SESSION_TRANSACTED);
}
- MessageConsumer messageConsumer =
sessionConsumer.createConsumer(sessionConsumer.createQueue("queue_" +
destination + protocolUsed));
+ String queueName = "queue_" + destination + "_" + protocol;
+
+ MessageConsumer messageConsumer =
sessionConsumer.createConsumer(sessionConsumer.createQueue(queueName));
for (int m = 0; m < MESSAGES; m++) {
- TextMessage message = (TextMessage)
messageConsumer.receive(50_000);
+ TextMessage message = (TextMessage)
messageConsumer.receive(1_000);
if (message == null) {
+ logger.info("message is null on {}, m={}", queueName,
m);
m--;
continue;
}
@@ -238,14 +253,18 @@ public class HorizontalPagingTest extends SoakTestBase {
}
connectionConsumer.start();
- }
- assertTrue(latchDone.await(TIMEOUT_MINUTES, TimeUnit.MINUTES));
+ assertTrue(latchDone.await(TIMEOUT_MINUTES, TimeUnit.MINUTES));
+ }
service.shutdown();
assertTrue(service.awaitTermination(TIMEOUT_MINUTES, TimeUnit.MINUTES),
"Test Timed Out");
assertEquals(0, errors.get());
- assertEquals(DESTINATIONS * protocolList.size(), completedFine.get());
+ assertEquals(DESTINATIONS, completedFine.get());
+
+ killServer(serverProcess, true);
+ serverProcess = startServer(SERVER_NAME_0, 0, -1);
+ assertTrue(ServerUtil.waitForServerToStart(0, SERVER_START_TIMEOUT));
}
}
diff --git a/tests/soak-tests/src/test/scripts/longrun-parameters.sh
b/tests/soak-tests/src/test/scripts/longrun-parameters.sh
index a0f429003f..c22864f899 100755
--- a/tests/soak-tests/src/test/scripts/longrun-parameters.sh
+++ b/tests/soak-tests/src/test/scripts/longrun-parameters.sh
@@ -16,67 +16,55 @@
# specific language governing permissions and limitations
# under the License.
-# use this script for larger parameters, possibly when using larger machines
-
+# this script contains a suggest set of variables to run the soak tests.
## Generic variable:
# Some tests will support saving the producer's state before consumption. If
you set this variable these tests will hold a zip file and recover it
approprieatedly.
#export TEST_ZIP_LOCATION=~/zipTest/
#HorizontalPagingTest
-
export TEST_HORIZONTAL_TEST_ENABLED=true
-export TEST_HORIZONTAL_SERVER_START_TIMEOUT=300000
+export TEST_HORIZONTAL_SERVER_START_TIMEOUT=30000
export TEST_HORIZONTAL_TIMEOUT_MINUTES=120
-export TEST_HORIZONTAL_PROTOCOL_LIST=OPENWIRE,CORE,AMQP
-
-export TEST_HORIZONTAL_DESTINATIONS=5
-export TEST_HORIZONTAL_MESSAGES=1000
+export TEST_HORIZONTAL_DESTINATIONS=100
+export TEST_HORIZONTAL_MESSAGES=100
export TEST_HORIZONTAL_COMMIT_INTERVAL=100
export TEST_HORIZONTAL_RECEIVE_COMMIT_INTERVAL=100
export TEST_HORIZONTAL_MESSAGE_SIZE=10000
-export TEST_HORIZONTAL_PARALLEL_SENDS=5
+export TEST_HORIZONTAL_EXECUTOR_SIZE=50
+## set this next variable if you wanted to validate horizontal tests over a
NFS mount
+#export TEST_HORIZONTAL_DATA_FOLDER=/mnt/journal/Horizontal
+# FlowControlPagingTest
export TEST_FLOW_SERVER_START_TIMEOUT=300000
export TEST_FLOW_TIMEOUT_MINUTES=120
-
-
-# FlowControlPagingTest
export TEST_FLOW_PROTOCOL_LIST=CORE,AMQP,OPENWIRE
export TEST_FLOW_PRINT_INTERVAL=100
-
export TEST_FLOW_OPENWIRE_MESSAGES=10000
export TEST_FLOW_OPENWIRE_COMMIT_INTERVAL=1000
export TEST_FLOW_OPENWIRE_RECEIVE_COMMIT_INTERVAL=10
export TEST_FLOW_OPENWIRE_MESSAGE_SIZE=60000
-
export TEST_FLOW_CORE_MESSAGES=10000
export TEST_FLOW_CORE_COMMIT_INTERVAL=1000
export TEST_FLOW_CORE_RECEIVE_COMMIT_INTERVAL=10
export TEST_FLOW_CORE_MESSAGE_SIZE=30000
-
export TEST_FLOW_AMQP_MESSAGES=10000
export TEST_FLOW_AMQP_COMMIT_INTERVAL=1000
export TEST_FLOW_AMQP_RECEIVE_COMMIT_INTERVAL=10
export TEST_FLOW_AMQP_MESSAGE_SIZE=30000
-
# SubscriptionPagingTest
export TEST_SUBSCRIPTION_PROTOCOL_LIST=CORE
-
export TEST_SUBSCRIPTION_SERVER_START_TIMEOUT=300000
export TEST_SUBSCRIPTION_TIMEOUT_MINUTES=120
export TEST_SUBSCRIPTION_PRINT_INTERVAL=100
export TEST_SUBSCRIPTION_SLOW_SUBSCRIPTIONS=5
-
-
export TEST_SUBSCRIPTION_CORE_MESSAGES=10000
export TEST_SUBSCRIPTION_CORE_COMMIT_INTERVAL=1000
export TEST_SUBSCRIPTION_CORE_RECEIVE_COMMIT_INTERVAL=0
export TEST_SUBSCRIPTION_CORE_MESSAGE_SIZE=30000
export TEST_SUBSCRIPTION_SLEEP_SLOW=1000
-
#OWLeakTest
export TEST_OW_LEAK_TEST_ENABLED=true
export TEST_OW_LEAK_PROTOCOL_LIST=OPENWIRE
@@ -96,7 +84,6 @@ export TEST_PGDB_COMMIT_INTERVAL=50
#ClientFailureSoakTest
export TEST_CLIENT_FAILURE_TEST_ENABLED=true
export TEST_CLIENT_FAILURE_PROTOCOL_LIST=AMQP,CORE,OPENWIRE
-
export TEST_CLIENT_FAILURE_AMQP_USE_LARGE_MESSAGE=TRUE
export TEST_CLIENT_FAILURE_AMQP_THREADS_PER_VM=20
export TEST_CLIENT_FAILURE_AMQP_CLIENT_CONSUMERS_PER_THREAD=20
@@ -105,7 +92,6 @@ export TEST_CLIENT_FAILURE_AMQP_TOTAL_ITERATION=2
export TEST_CLIENT_FAILURE_AMQP_NUMBER_OF_VMS=5
export TEST_CLIENT_FAILURE_AMQP_NUMBER_OF_MESSAGES=20000
export TEST_CLIENT_FAILURE_AMQP_MEMORY_CLIENT=-Xmx256m
-
export TEST_CLIENT_FAILURE_CORE_USE_LARGE_MESSAGE=TRUE
export TEST_CLIENT_FAILURE_CORE_THREADS_PER_VM=20
export TEST_CLIENT_FAILURE_CORE_CLIENT_CONSUMERS_PER_THREAD=20
@@ -114,7 +100,6 @@ export TEST_CLIENT_FAILURE_CORE_TOTAL_ITERATION=2
export TEST_CLIENT_FAILURE_CORE_NUMBER_OF_VMS=5
export TEST_CLIENT_FAILURE_CORE_NUMBER_OF_MESSAGES=20000
export TEST_CLIENT_FAILURE_CORE_MEMORY_CLIENT=-Xmx256m
-
export TEST_CLIENT_FAILURE_OPENWIRE_USE_LARGE_MESSAGE=TRUE
export TEST_CLIENT_FAILURE_OPENWIRE_THREADS_PER_VM=20
export TEST_CLIENT_FAILURE_OPENWIRE_CLIENT_CONSUMERS_PER_THREAD=20
@@ -131,13 +116,13 @@ export
TEST_CLUSTER_NOTIFICATIONS_CONTINUITY_NUMBER_OF_QUEUES=200
export TEST_CLUSTER_NOTIFICATIONS_CONTINUITY_NUMBER_OF_WORKERS=10
export TEST_SINGLE_MIRROR_SOAK_TRACE_LOGS=false
-export TEST_SINGLE_MIRROR_SOAK_NUMBER_MESSAGES=500000
-export TEST_SINGLE_MIRROR_SOAK_NUMBER_MESSAGES_RECEIVE=400000
+export TEST_SINGLE_MIRROR_SOAK_NUMBER_MESSAGES=50000
+export TEST_SINGLE_MIRROR_SOAK_NUMBER_MESSAGES_RECEIVE=40000
export TEST_SINGLE_MIRROR_SOAK_RECEIVE_COMMIT=500
export TEST_SINGLE_MIRROR_SOAK_SEND_COMMIT=1000
-export TEST_SINGLE_MIRROR_SOAK_KILL_INTERVAL=50000
-export TEST_SINGLE_MIRROR_SOAK_SNF_TIMEOUT=60000000
-export TEST_SINGLE_MIRROR_SOAK_GENERAL_TIMEOUT=100000
+export TEST_SINGLE_MIRROR_SOAK_KILL_INTERVAL=10000
+export TEST_SINGLE_MIRROR_SOAK_SNF_TIMEOUT=60000
+export TEST_SINGLE_MIRROR_SOAK_GENERAL_TIMEOUT=10000
export TEST_SINGLE_MIRROR_SOAK_CONSUMER_PROCESSING_TIME=10
#LargeAccumulationTest
@@ -147,8 +132,8 @@ export TEST_LARGE_ACCUMULATION_MAX_PENDING_ACKS=1000
export TEST_LARGE_ACCUMULATION_NO_WEB=true
export TEST_LARGE_ACCUMULATION_THREADS=20
export TEST_LARGE_ACCUMULATION_NUMBER_OF_SUBSCRIPTIONS=2
-export TEST_LARGE_ACCUMULATION_NUMBER_OF_LARGE_MESSAGES=100
+export TEST_LARGE_ACCUMULATION_NUMBER_OF_LARGE_MESSAGES=25
export TEST_LARGE_ACCUMULATION_SIZE_OF_LARGE_MESSAGE=200000
-export TEST_LARGE_ACCUMULATION_NUMBER_OF_REGULAR_MESSAGES=2500
+export TEST_LARGE_ACCUMULATION_NUMBER_OF_REGULAR_MESSAGES=500
export TEST_LARGE_ACCUMULATION_SIZE_OF_REGULAR_MESSAGE=30000
export TEST_LARGE_ACCUMULATION_LARGE_TIMEOUT_MINUTES=1
diff --git a/tests/soak-tests/src/test/scripts/parameters.sh
b/tests/soak-tests/src/test/scripts/parameters.sh
index 624654e058..c22864f899 100755
--- a/tests/soak-tests/src/test/scripts/parameters.sh
+++ b/tests/soak-tests/src/test/scripts/parameters.sh
@@ -23,59 +23,48 @@
#export TEST_ZIP_LOCATION=~/zipTest/
#HorizontalPagingTest
-
export TEST_HORIZONTAL_TEST_ENABLED=true
-export TEST_HORIZONTAL_SERVER_START_TIMEOUT=300000
+export TEST_HORIZONTAL_SERVER_START_TIMEOUT=30000
export TEST_HORIZONTAL_TIMEOUT_MINUTES=120
-export TEST_HORIZONTAL_PROTOCOL_LIST=OPENWIRE,CORE,AMQP
-
-export TEST_HORIZONTAL_DESTINATIONS=5
-export TEST_HORIZONTAL_MESSAGES=1000
+export TEST_HORIZONTAL_DESTINATIONS=100
+export TEST_HORIZONTAL_MESSAGES=100
export TEST_HORIZONTAL_COMMIT_INTERVAL=100
export TEST_HORIZONTAL_RECEIVE_COMMIT_INTERVAL=100
export TEST_HORIZONTAL_MESSAGE_SIZE=10000
-export TEST_HORIZONTAL_PARALLEL_SENDS=5
+export TEST_HORIZONTAL_EXECUTOR_SIZE=50
+## set this next variable if you wanted to validate horizontal tests over a
NFS mount
+#export TEST_HORIZONTAL_DATA_FOLDER=/mnt/journal/Horizontal
+# FlowControlPagingTest
export TEST_FLOW_SERVER_START_TIMEOUT=300000
export TEST_FLOW_TIMEOUT_MINUTES=120
-
-
-# FlowControlPagingTest
export TEST_FLOW_PROTOCOL_LIST=CORE,AMQP,OPENWIRE
export TEST_FLOW_PRINT_INTERVAL=100
-
export TEST_FLOW_OPENWIRE_MESSAGES=10000
export TEST_FLOW_OPENWIRE_COMMIT_INTERVAL=1000
export TEST_FLOW_OPENWIRE_RECEIVE_COMMIT_INTERVAL=10
export TEST_FLOW_OPENWIRE_MESSAGE_SIZE=60000
-
export TEST_FLOW_CORE_MESSAGES=10000
export TEST_FLOW_CORE_COMMIT_INTERVAL=1000
export TEST_FLOW_CORE_RECEIVE_COMMIT_INTERVAL=10
export TEST_FLOW_CORE_MESSAGE_SIZE=30000
-
export TEST_FLOW_AMQP_MESSAGES=10000
export TEST_FLOW_AMQP_COMMIT_INTERVAL=1000
export TEST_FLOW_AMQP_RECEIVE_COMMIT_INTERVAL=10
export TEST_FLOW_AMQP_MESSAGE_SIZE=30000
-
# SubscriptionPagingTest
export TEST_SUBSCRIPTION_PROTOCOL_LIST=CORE
-
export TEST_SUBSCRIPTION_SERVER_START_TIMEOUT=300000
export TEST_SUBSCRIPTION_TIMEOUT_MINUTES=120
export TEST_SUBSCRIPTION_PRINT_INTERVAL=100
export TEST_SUBSCRIPTION_SLOW_SUBSCRIPTIONS=5
-
-
export TEST_SUBSCRIPTION_CORE_MESSAGES=10000
export TEST_SUBSCRIPTION_CORE_COMMIT_INTERVAL=1000
export TEST_SUBSCRIPTION_CORE_RECEIVE_COMMIT_INTERVAL=0
export TEST_SUBSCRIPTION_CORE_MESSAGE_SIZE=30000
export TEST_SUBSCRIPTION_SLEEP_SLOW=1000
-
#OWLeakTest
export TEST_OW_LEAK_TEST_ENABLED=true
export TEST_OW_LEAK_PROTOCOL_LIST=OPENWIRE
@@ -95,7 +84,6 @@ export TEST_PGDB_COMMIT_INTERVAL=50
#ClientFailureSoakTest
export TEST_CLIENT_FAILURE_TEST_ENABLED=true
export TEST_CLIENT_FAILURE_PROTOCOL_LIST=AMQP,CORE,OPENWIRE
-
export TEST_CLIENT_FAILURE_AMQP_USE_LARGE_MESSAGE=TRUE
export TEST_CLIENT_FAILURE_AMQP_THREADS_PER_VM=20
export TEST_CLIENT_FAILURE_AMQP_CLIENT_CONSUMERS_PER_THREAD=20
@@ -104,7 +92,6 @@ export TEST_CLIENT_FAILURE_AMQP_TOTAL_ITERATION=2
export TEST_CLIENT_FAILURE_AMQP_NUMBER_OF_VMS=5
export TEST_CLIENT_FAILURE_AMQP_NUMBER_OF_MESSAGES=20000
export TEST_CLIENT_FAILURE_AMQP_MEMORY_CLIENT=-Xmx256m
-
export TEST_CLIENT_FAILURE_CORE_USE_LARGE_MESSAGE=TRUE
export TEST_CLIENT_FAILURE_CORE_THREADS_PER_VM=20
export TEST_CLIENT_FAILURE_CORE_CLIENT_CONSUMERS_PER_THREAD=20
@@ -113,7 +100,6 @@ export TEST_CLIENT_FAILURE_CORE_TOTAL_ITERATION=2
export TEST_CLIENT_FAILURE_CORE_NUMBER_OF_VMS=5
export TEST_CLIENT_FAILURE_CORE_NUMBER_OF_MESSAGES=20000
export TEST_CLIENT_FAILURE_CORE_MEMORY_CLIENT=-Xmx256m
-
export TEST_CLIENT_FAILURE_OPENWIRE_USE_LARGE_MESSAGE=TRUE
export TEST_CLIENT_FAILURE_OPENWIRE_THREADS_PER_VM=20
export TEST_CLIENT_FAILURE_OPENWIRE_CLIENT_CONSUMERS_PER_THREAD=20
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact