From e2891587765af8d2505b3f6e00599ac180bc2a96 Mon Sep 17 00:00:00 2001 From: marc-adaptive Date: Sun, 11 Aug 2024 18:33:17 -0400 Subject: [PATCH] Fix Stress samples --- .../real_logic/artio/stress/ConcurrentConnections.java | 4 ++++ .../co/real_logic/artio/stress/SerialConnections.java | 10 ++++++++-- .../java/uk/co/real_logic/artio/stress/Server.java | 6 ++++++ .../java/uk/co/real_logic/artio/stress/SoleEngine.java | 6 ++++++ .../uk/co/real_logic/artio/stress/SoleMediaDriver.java | 7 +++++++ .../real_logic/artio/stress/StressConfiguration.java | 4 ++++ 6 files changed, 35 insertions(+), 2 deletions(-) diff --git a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/ConcurrentConnections.java b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/ConcurrentConnections.java index 31ba377805..216a0757d5 100644 --- a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/ConcurrentConnections.java +++ b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/ConcurrentConnections.java @@ -52,6 +52,10 @@ public static void main(final String[] args) throws Exception .logFileDir("stress-client-logs"); engineConfiguration.authenticationStrategy((logon) -> true); + engineConfiguration.aeronArchiveContext() + .controlRequestChannel(StressConfiguration.CONTROL_REQUEST_CHANNEL) + .controlResponseChannel(StressConfiguration.CLIENT_CONTROL_RESPONSE_CHANNEL); + System.out.println("Client Logs at " + engineConfiguration.logFileDir()); StressUtil.cleanupOldLogFileDir(engineConfiguration); diff --git a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SerialConnections.java b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SerialConnections.java index 20ac5833a7..f0839e8546 100644 --- a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SerialConnections.java +++ b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SerialConnections.java @@ -33,6 +33,7 @@ import static org.agrona.SystemUtil.loadPropertiesFiles; import static uk.co.real_logic.artio.messages.SessionState.DISCONNECTED; import static uk.co.real_logic.artio.stress.StressConfiguration.*; +import static uk.co.real_logic.artio.validation.SessionPersistenceStrategy.alwaysPersistent; public final class SerialConnections { @@ -50,7 +51,11 @@ public static void main(final String[] args) final EngineConfiguration engineConfiguration = new EngineConfiguration() .libraryAeronChannel(aeronChannel) .logFileDir("stress-client-logs") - .bindTo("localhost", 10001); + .sessionPersistenceStrategy(alwaysPersistent()); + + engineConfiguration.aeronArchiveContext() + .controlRequestChannel(StressConfiguration.CONTROL_REQUEST_CHANNEL) + .controlResponseChannel(StressConfiguration.CLIENT_CONTROL_RESPONSE_CHANNEL); System.out.println("Client Logs at " + engineConfiguration.logFileDir()); @@ -73,6 +78,7 @@ public static void main(final String[] args) .address("localhost", StressConfiguration.PORT) .targetCompId(ACCEPTOR_ID) .senderCompId(INITIATOR_ID) + .sequenceNumbersPersistent(true) .build(); final LibraryConfiguration libraryConfiguration = new LibraryConfiguration() @@ -102,7 +108,7 @@ public static void main(final String[] args) } final Session session = reply.resultIfPresent(); - while (session.isActive()) + while (!session.isActive()) { idleStrategy.idle(library.poll(1)); } diff --git a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/Server.java b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/Server.java index f5ed505476..6d14b09280 100644 --- a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/Server.java +++ b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/Server.java @@ -55,6 +55,10 @@ public Server() .authenticationStrategy(authenticationStrategy) .agentNamePrefix("server-"); + configuration.aeronArchiveContext() + .controlRequestChannel(StressConfiguration.CONTROL_REQUEST_CHANNEL) + .controlResponseChannel(StressConfiguration.SERVER_CONTROL_RESPONSE_CHANNEL); + System.out.println("Server Logs at " + configuration.logFileDir()); StressUtil.cleanupOldLogFileDir(configuration); @@ -65,6 +69,8 @@ public Server() final Archive.Context archiveContext = new Archive.Context() .threadingMode(ArchiveThreadingMode.SHARED) + .controlChannel(StressConfiguration.CONTROL_REQUEST_CHANNEL) + .replicationChannel(StressConfiguration.REPLICATION_CHANNEL) .deleteArchiveOnStart(true); mediaDriver = ArchivingMediaDriver.launch(context, archiveContext); diff --git a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SoleEngine.java b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SoleEngine.java index 805bb56f2c..1bea2a4fb8 100644 --- a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SoleEngine.java +++ b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SoleEngine.java @@ -18,12 +18,18 @@ import uk.co.real_logic.artio.engine.EngineConfiguration; import uk.co.real_logic.artio.engine.FixEngine; +import static io.aeron.archive.client.AeronArchive.Configuration.CONTROL_CHANNEL_PROP_NAME; +import static io.aeron.archive.client.AeronArchive.Configuration.CONTROL_RESPONSE_CHANNEL_PROP_NAME; + public final class SoleEngine { static final String AERON_CHANNEL = "aeron:udp?endpoint=localhost:10000"; public static void main(final String[] args) { + System.setProperty(CONTROL_CHANNEL_PROP_NAME, "aeron:udp?endpoint=localhost:8010"); + System.setProperty(CONTROL_RESPONSE_CHANNEL_PROP_NAME, "aeron:udp?endpoint=localhost:8020"); + final EngineConfiguration configuration = new EngineConfiguration() .bindTo("localhost", StressConfiguration.PORT) .logFileDir("stress-server-logs") diff --git a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SoleMediaDriver.java b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SoleMediaDriver.java index c6d2f9431a..c1394f0051 100644 --- a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SoleMediaDriver.java +++ b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/SoleMediaDriver.java @@ -20,12 +20,19 @@ import io.aeron.archive.ArchivingMediaDriver; import io.aeron.driver.MediaDriver; +import static io.aeron.archive.Archive.Configuration.REPLICATION_CHANNEL_PROP_NAME; +import static io.aeron.archive.client.AeronArchive.Configuration.CONTROL_CHANNEL_PROP_NAME; +import static io.aeron.archive.client.AeronArchive.Configuration.CONTROL_RESPONSE_CHANNEL_PROP_NAME; import static io.aeron.driver.ThreadingMode.SHARED; public final class SoleMediaDriver { public static void main(final String[] args) { + System.setProperty(CONTROL_CHANNEL_PROP_NAME, "aeron:udp?endpoint=localhost:8010"); + System.setProperty(CONTROL_RESPONSE_CHANNEL_PROP_NAME, "aeron:udp?endpoint=localhost:8020"); + System.setProperty(REPLICATION_CHANNEL_PROP_NAME, "aeron:udp?endpoint=localhost:0"); + final MediaDriver.Context context = new MediaDriver.Context() .threadingMode(SHARED) .dirDeleteOnStart(true); diff --git a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/StressConfiguration.java b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/StressConfiguration.java index 72a0fa39dc..968bbb30e1 100644 --- a/artio-samples/src/main/java/uk/co/real_logic/artio/stress/StressConfiguration.java +++ b/artio-samples/src/main/java/uk/co/real_logic/artio/stress/StressConfiguration.java @@ -35,4 +35,8 @@ static boolean printFailedSpints(final long failCount) return FAILED_SPINS_PRINT != DO_NOT_PRINT && failCount > FAILED_SPINS_PRINT; } + public static final String CONTROL_REQUEST_CHANNEL = "aeron:udp?endpoint=localhost:8010"; + public static final String SERVER_CONTROL_RESPONSE_CHANNEL = "aeron:udp?endpoint=localhost:8020"; + public static final String CLIENT_CONTROL_RESPONSE_CHANNEL = "aeron:udp?endpoint=localhost:8030"; + public static final String REPLICATION_CHANNEL = "aeron:udp?endpoint=localhost:0"; }