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


Reply via email to