/** * Launch a MediaDriver embedded in the current process with default configuration. * * @return the newly started MediaDriver. */ public static MediaDriver launch() { return launch(new Context()); }
/** * Start Media Driver as a stand-alone process. * * @param args command line arguments */ public static void main(final String[] args) { loadPropertiesFiles(args); try (MediaDriver ignore = MediaDriver.launch()) { new ShutdownSignalBarrier().await(); System.out.println("Shutdown Driver..."); } }
/** * Launch an isolated MediaDriver embedded in the current process with a provided configuration ctx and a generated * aeronDirectoryName (overwrites configured {@link Context#aeronDirectoryName()}) that can be retrieved by calling * aeronDirectoryName. * <p> * If the aeronDirectoryName is set as a system property, or via context, to something different than * {@link CommonContext#AERON_DIR_PROP_DEFAULT} then this set value will be used. * * @param ctx containing the configuration options. * @return the newly started MediaDriver. */ public static MediaDriver launchEmbedded(final Context ctx) { if (CommonContext.AERON_DIR_PROP_DEFAULT.equals(ctx.aeronDirectoryName())) { ctx.aeronDirectoryName(CommonContext.generateRandomDirName()); } return launch(ctx); }
public static void main(final String[] args) throws Exception { loadPropertiesFiles(args); final MediaDriver.Context ctx = new MediaDriver.Context() .threadingMode(ThreadingMode.DEDICATED) .conductorIdleStrategy(new BackoffIdleStrategy(1, 1, 1, 1)) .receiverIdleStrategy(new NoOpIdleStrategy()) .senderIdleStrategy(new NoOpIdleStrategy()); try (MediaDriver ignored = MediaDriver.launch(ctx)) { final Thread pongThread = startPong(ignored.aeronDirectoryName()); pongThread.start(); runPing(ignored.aeronDirectoryName()); RUNNING.set(false); pongThread.join(); System.out.println("Shutdown Driver..."); } }
private void launch() { driverContext.publicationTermBufferLength(TERM_BUFFER_LENGTH) .errorHandler(Throwable::printStackTrace) .threadingMode(ThreadingMode.SHARED); driver = MediaDriver.launch(driverContext); client = Aeron.connect(); }
public static void main(final String[] args) { loadPropertiesFiles(args); final MediaDriver.Context ctx = new MediaDriver.Context() .termBufferSparseFile(false) .threadingMode(ThreadingMode.DEDICATED) .conductorIdleStrategy(new BusySpinIdleStrategy()) .receiverIdleStrategy(new BusySpinIdleStrategy()) .senderIdleStrategy(new BusySpinIdleStrategy()); try (MediaDriver ignored = MediaDriver.launch(ctx)) { new ShutdownSignalBarrier().await(); System.out.println("Shutdown Driver..."); } } }
/** * Launch a new {@link ArchivingMediaDriver} with provided contexts. * * @param driverCtx for configuring the {@link MediaDriver}. * @param archiveCtx for configuring the {@link Archive}. * @return a new {@link ArchivingMediaDriver} with the provided contexts. */ public static ArchivingMediaDriver launch(final MediaDriver.Context driverCtx, final Archive.Context archiveCtx) { final MediaDriver driver = MediaDriver.launch(driverCtx); final Archive archive = Archive.launch(archiveCtx .mediaDriverAgentInvoker(driver.sharedAgentInvoker()) .errorHandler(driverCtx.errorHandler()) .errorCounter(driverCtx.systemCounters().get(SystemCounterDescriptor.ERRORS))); return new ArchivingMediaDriver(driver, archive); }
private void launch(final String channel) { context .threadingMode(THREADING_MODE) .errorHandler(Throwable::printStackTrace) .publicationConnectionTimeoutNs(TimeUnit.MILLISECONDS.toNanos(500)) .timerIntervalNs(TimeUnit.MILLISECONDS.toNanos(100)); driver = MediaDriver.launch(context); subscribingClient = Aeron.connect(); publishingClient = Aeron.connect(); subscription = subscribingClient.addSubscription(channel, STREAM_ID); publication = publishingClient.addPublication(channel, STREAM_ID); }
/** * Launch a new {@link ClusteredMediaDriver} with provided contexts. * * @param driverCtx for configuring the {@link MediaDriver}. * @param archiveCtx for configuring the {@link Archive}. * @param consensusModuleCtx for the configuration of the {@link ConsensusModule}. * @return a new {@link ClusteredMediaDriver} with the provided contexts. */ public static ClusteredMediaDriver launch( final MediaDriver.Context driverCtx, final Archive.Context archiveCtx, final ConsensusModule.Context consensusModuleCtx) { final MediaDriver driver = MediaDriver.launch(driverCtx .spiesSimulateConnection(true)); final Archive archive = Archive.launch(archiveCtx .mediaDriverAgentInvoker(driver.sharedAgentInvoker()) .errorHandler(driverCtx.errorHandler()) .errorCounter(driverCtx.systemCounters().get(SystemCounterDescriptor.ERRORS))); final ConsensusModule consensusModule = ConsensusModule.launch(consensusModuleCtx); return new ClusteredMediaDriver(driver, archive, consensusModule); }
private void launch() { final String baseDirA = ROOT_DIR + "A"; buffer.putInt(0, 1); driverContextA .errorHandler(Throwable::printStackTrace) .publicationTermBufferLength(TERM_BUFFER_LENGTH) .aeronDirectoryName(baseDirA) .threadingMode(ThreadingMode.SHARED); driverA = MediaDriver.launch(driverContextA); clientA = Aeron.connect(new Aeron.Context().aeronDirectoryName(driverContextA.aeronDirectoryName())); }
@Theory @Test public void shouldHaveCorrectTermBufferLength(final String channel) { final MediaDriver.Context ctx = new MediaDriver.Context() .errorHandler(Throwable::printStackTrace) .publicationTermBufferLength(TEST_TERM_LENGTH * 2) .ipcTermBufferLength(TEST_TERM_LENGTH * 2); try (MediaDriver ignore = MediaDriver.launch(ctx); Aeron aeron = Aeron.connect(); Publication publication = aeron.addPublication(channel, STREAM_ID)) { assertThat(publication.termBufferLength(), is(TEST_TERM_LENGTH)); } finally { ctx.deleteAeronDirectory(); } } }
private void launch() { final String baseDirA = ROOT_DIR + "A"; final String baseDirB = ROOT_DIR + "B"; buffer.putInt(0, 1); driverAContext.publicationTermBufferLength(TERM_BUFFER_LENGTH) .aeronDirectoryName(baseDirA) .timerIntervalNs(TimeUnit.MILLISECONDS.toNanos(100)) .errorHandler(Throwable::printStackTrace) .threadingMode(ThreadingMode.SHARED); driverBContext.publicationTermBufferLength(TERM_BUFFER_LENGTH) .aeronDirectoryName(baseDirB) .timerIntervalNs(TimeUnit.MILLISECONDS.toNanos(100)) .errorHandler(Throwable::printStackTrace) .threadingMode(ThreadingMode.SHARED); driverA = MediaDriver.launch(driverAContext); driverB = MediaDriver.launch(driverBContext); clientA = Aeron.connect( new Aeron.Context() .errorHandler(Throwable::printStackTrace) .aeronDirectoryName(driverAContext.aeronDirectoryName())); clientB = Aeron.connect( new Aeron.Context() .errorHandler(Throwable::printStackTrace) .aeronDirectoryName(driverBContext.aeronDirectoryName())); }
void startClient() { final String aeronDirName = CommonContext.getAeronDirectoryName(); clientMediaDriver = MediaDriver.launch( new MediaDriver.Context() .threadingMode(ThreadingMode.SHARED) .aeronDirectoryName(aeronDirName)); client = AeronCluster.connect( new AeronCluster.Context() .egressListener(egressMessageListener) .aeronDirectoryName(aeronDirName) .ingressChannel("aeron:udp") .clusterMemberEndpoints(staticClusterMemberEndpoints)); }
private void launch() { final String baseDirA = ROOT_DIR + "A"; final String baseDirB = ROOT_DIR + "B"; buffer.putInt(0, 1); final MediaDriver.Context driverAContext = new MediaDriver.Context() .errorHandler(Throwable::printStackTrace) .publicationTermBufferLength(TERM_BUFFER_LENGTH) .aeronDirectoryName(baseDirA) .threadingMode(ThreadingMode.SHARED); driverBContext.publicationTermBufferLength(TERM_BUFFER_LENGTH) .errorHandler(Throwable::printStackTrace) .aeronDirectoryName(baseDirB) .threadingMode(ThreadingMode.SHARED); driverA = MediaDriver.launch(driverAContext); driverB = MediaDriver.launch(driverBContext); clientA = Aeron.connect(new Aeron.Context().aeronDirectoryName(driverAContext.aeronDirectoryName())); clientB = Aeron.connect(new Aeron.Context().aeronDirectoryName(driverBContext.aeronDirectoryName())); }
private void launch() { final String baseDirA = ROOT_DIR + "A"; final String baseDirB = ROOT_DIR + "B"; buffer.putInt(0, 1); final MediaDriver.Context driverAContext = new MediaDriver.Context() .errorHandler(Throwable::printStackTrace) .publicationTermBufferLength(TERM_BUFFER_LENGTH) .aeronDirectoryName(baseDirA) .threadingMode(THREADING_MODE); final MediaDriver.Context driverBContext = new MediaDriver.Context() .errorHandler(Throwable::printStackTrace) .publicationTermBufferLength(TERM_BUFFER_LENGTH) .aeronDirectoryName(baseDirB) .threadingMode(THREADING_MODE); driverA = MediaDriver.launch(driverAContext); driverB = MediaDriver.launch(driverBContext); clientA = Aeron.connect(new Aeron.Context().aeronDirectoryName(driverAContext.aeronDirectoryName())); clientB = Aeron.connect(new Aeron.Context().aeronDirectoryName(driverBContext.aeronDirectoryName())); }
@Before public void before() { driver = MediaDriver.launch( new MediaDriver.Context() .errorHandler(Throwable::printStackTrace) .publicationTermBufferLength(LogBufferDescriptor.TERM_MIN_LENGTH) .threadingMode(ThreadingMode.SHARED)); pingClient = Aeron.connect(); pongClient = Aeron.connect(); pingSubscription = pongClient.addSubscription(PING_URI, PING_STREAM_ID); pingPublication = pingClient.addPublication(PING_URI, PING_STREAM_ID); pongSubscription = pingClient.addSubscription(PONG_URI, PONG_STREAM_ID); pongPublication = pongClient.addPublication(PONG_URI, PONG_STREAM_ID); }
private void launch() { labelBuffer.putStringWithoutLengthAscii(0, COUNTER_LABEL); driver = MediaDriver.launch( new MediaDriver.Context() .errorHandler(Throwable::printStackTrace) .threadingMode(ThreadingMode.SHARED)); clientA = Aeron.connect( new Aeron.Context() .availableCounterHandler(availableCounterHandlerClientA) .unavailableCounterHandler(unavailableCounterHandlerClientA)); clientB = Aeron.connect( new Aeron.Context() .availableCounterHandler(availableCounterHandlerClientB) .unavailableCounterHandler(unavailableCounterHandlerClientB)); }
private void startClient() { if (client != null) { client.close(); client = null; clientMediaDriver.close(); } final String aeronDirName = CommonContext.getAeronDirectoryName(); clientMediaDriver = MediaDriver.launch( new MediaDriver.Context() .threadingMode(ThreadingMode.SHARED) .aeronDirectoryName(aeronDirName) .dirDeleteOnStart(true)); client = AeronCluster.connect( new AeronCluster.Context() .egressListener(egressMessageListener) .aeronDirectoryName(aeronDirName) .ingressChannel("aeron:udp") .clusterMemberEndpoints("0=localhost:20110,1=localhost:20111,2=localhost:20112")); }
@Before public void before() { rnd.setSeed(seed); driver = MediaDriver.launch( new MediaDriver.Context() .threadingMode(ThreadingMode.DEDICATED) .spiesSimulateConnection(true) .errorHandler(Throwable::printStackTrace) .dirDeleteOnStart(true)); archive = Archive.launch( new Archive.Context() .deleteArchiveOnStart(true) .archiveDir(new File(IoUtil.tmpDirName(), "archive-test")) .fileSyncLevel(0) .threadingMode(ArchiveThreadingMode.SHARED) .errorCounter(driver.context().systemCounters().get(SystemCounterDescriptor.ERRORS)) .errorHandler(driver.context().errorHandler())); aeron = Aeron.connect(); aeronArchive = AeronArchive.connect( new AeronArchive.Context() .controlResponseChannel(CONTROL_RESPONSE_URI) .controlResponseStreamId(CONTROL_RESPONSE_STREAM_ID) .aeron(aeron) .ownsAeronClient(true)); }
@Before public void before() { rnd.setSeed(seed); driver = MediaDriver.launch( new MediaDriver.Context() .threadingMode(ThreadingMode.DEDICATED) .spiesSimulateConnection(true) .errorHandler(Throwable::printStackTrace) .dirDeleteOnStart(true)); archive = Archive.launch( new Archive.Context() .fileSyncLevel(0) .deleteArchiveOnStart(true) .archiveDir(new File(IoUtil.tmpDirName(), "archive-test")) .threadingMode(ArchiveThreadingMode.SHARED) .errorCounter(driver.context().systemCounters().get(SystemCounterDescriptor.ERRORS)) .errorHandler(driver.context().errorHandler())); aeron = Aeron.connect(); aeronArchive = AeronArchive.connect( new AeronArchive.Context() .controlResponseChannel(CONTROL_RESPONSE_URI) .controlResponseStreamId(CONTROL_RESPONSE_STREAM_ID) .aeron(aeron) .ownsAeronClient(true)); }