public static MappedByteBuffer mapExistingFile( final File markFile, final Consumer<String> logger, final long offset, final long length) { if (markFile.exists()) { if (null != logger) { logger.accept("INFO: Mark file exists: " + markFile); } return IoUtil.mapExistingFile(markFile, markFile.toString(), offset, length); } return null; }
/** * Map the CnC file if it exists. * * @param logger for feedback * @return a new mapping for the file if it exists otherwise null; */ public MappedByteBuffer mapExistingCncFile(final Consumer<String> logger) { final File cncFile = new File(aeronDirectory, CncFileDescriptor.CNC_FILE); if (cncFile.exists() && cncFile.length() > 0) { if (null != logger) { logger.accept("INFO: Aeron CnC file exists: " + cncFile); } return IoUtil.mapExistingFile(cncFile, CncFileDescriptor.CNC_FILE); } return null; }
public static void main(final String[] args) { final PrintStream out = System.out; if (args.length < 1) { out.println("Usage: SegmentInspector <segmentFileName> [dump limit in bytes per message]"); return; } final String fileName = args[0]; final int messageDumpLimit = args.length >= 2 ? Integer.parseInt(args[1]) : Integer.MAX_VALUE; final File file = new File(fileName); final ByteBuffer byteBuffer = IoUtil.mapExistingFile(file, "Archive Segment File"); final UnsafeBuffer segmentBuffer = new UnsafeBuffer(byteBuffer); out.println("======================================================================"); out.format("%s Inspection dump for %s%n", new Date(), fileName); out.println("======================================================================"); out.println(); dumpSegment(out, messageDumpLimit, segmentBuffer); }
public static void main(final String[] args) { final String aeronDirectoryName = getProperty(AERON_DIR_PROP_NAME, AERON_DIR_PROP_DEFAULT); final File lossReportFile = LossReportUtil.file(aeronDirectoryName); if (!lossReportFile.exists()) { System.err.print("Loss report does not exist: " + lossReportFile); System.exit(1); } final MappedByteBuffer mappedByteBuffer = IoUtil.mapExistingFile(lossReportFile, "Loss Report"); final AtomicBuffer buffer = new UnsafeBuffer(mappedByteBuffer); System.out.println( "#OBSERVATION_COUNT, TOTAL_BYTES_LOST, FIRST_OBSERVATION," + " LAST_OBSERVATION, SESSION_ID, STREAM_ID, CHANNEL, SOURCE"); final int entriesRead = LossReportReader.read(buffer, LossStat::accept); System.out.println(entriesRead + " entries read"); }
/** * Is a media driver active in the given directory? * * @param directory to check * @param driverTimeoutMs for the driver liveness check. * @param logger for feedback as liveness checked. * @return true if a driver is active or false if not. */ public static boolean isDriverActive( final File directory, final long driverTimeoutMs, final Consumer<String> logger) { final File cncFile = new File(directory, CncFileDescriptor.CNC_FILE); if (cncFile.exists() && cncFile.length() > 0) { logger.accept("INFO: Aeron CnC file exists: " + cncFile); final MappedByteBuffer cncByteBuffer = IoUtil.mapExistingFile(cncFile, "CnC file"); try { return isDriverActive(driverTimeoutMs, logger, cncByteBuffer); } finally { IoUtil.unmap(cncByteBuffer); } } return false; }
public static void main(final String[] args) { final File cncFile = CommonContext.newDefaultCncFile(); System.out.println("Command `n Control file " + cncFile); final MappedByteBuffer cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaDataBuffer = CncFileDescriptor.createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaDataBuffer.getInt(CncFileDescriptor.cncVersionOffset(0)); if (CNC_VERSION != cncVersion) { throw new IllegalStateException( "Aeron CnC version does not match: version=" + cncVersion + " required=" + CNC_VERSION); } final AtomicBuffer buffer = CncFileDescriptor.createErrorLogBuffer(cncByteBuffer, cncMetaDataBuffer); final int distinctErrorCount = ErrorLogReader.read(buffer, ErrorStat::accept); System.out.format("%n%d distinct errors observed.%n", distinctErrorCount); }
public static void main(final String[] args) throws Exception { if (args.length != 1) { System.out.println("Filename to be sent must be supplied as a command line argument"); System.exit(1); } try (Aeron aeron = Aeron.connect(); Publication publication = aeron.addExclusivePublication(CHANNEL, STREAM_ID)) { while (!publication.isConnected()) { Thread.sleep(1); } final File file = new File(args[0]); final UnsafeBuffer buffer = new UnsafeBuffer(IoUtil.mapExistingFile(file, "sending")); final long correlationId = aeron.nextCorrelationId(); sendFileCreate(publication, correlationId, buffer.capacity(), file.getName()); streamChunks(publication, correlationId, buffer); } }
public static CountersReader mapCounters() { final File cncFile = CommonContext.newDefaultCncFile(); System.out.println("Command `n Control file " + cncFile); final MappedByteBuffer cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaData = createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaData.getInt(cncVersionOffset(0)); if (CncFileDescriptor.CNC_VERSION != cncVersion) { throw new IllegalStateException("CnC version not supported: file version=" + cncVersion); } return new CountersReader( createCountersMetaDataBuffer(cncByteBuffer, cncMetaData), createCountersValuesBuffer(cncByteBuffer, cncMetaData)); }
public static CountersReader mapCounters() { final File cncFile = CommonContext.newDefaultCncFile(); System.out.println("Command `n Control file " + cncFile); final MappedByteBuffer cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaData = createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaData.getInt(cncVersionOffset(0)); if (CNC_VERSION != cncVersion) { throw new IllegalStateException( "Aeron CnC version does not match: version=" + cncVersion + " required=" + CNC_VERSION); } return new CountersReader( createCountersMetaDataBuffer(cncByteBuffer, cncMetaData), createCountersValuesBuffer(cncByteBuffer, cncMetaData), StandardCharsets.US_ASCII); }
private static void printErrors(final PrintStream out, final ClusterMarkFile markFile) { out.println("Cluster component error log:"); ClusterMarkFile.saveErrorLog(out, markFile.errorBuffer()); final String aeronDirectory = markFile.decoder().aeronDirectory(); out.println("Aeron driver error log (directory: " + aeronDirectory + "):"); final File cncFile = new File(aeronDirectory, CncFileDescriptor.CNC_FILE); final MappedByteBuffer cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaDataBuffer = CncFileDescriptor.createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaDataBuffer.getInt(CncFileDescriptor.cncVersionOffset(0)); if (CncFileDescriptor.CNC_VERSION != cncVersion) { throw new AeronException( "Aeron CnC version does not match: version=" + cncVersion + " required=" + CncFileDescriptor.CNC_VERSION); } final AtomicBuffer buffer = CncFileDescriptor.createErrorLogBuffer(cncByteBuffer, cncMetaDataBuffer); ClusterMarkFile.saveErrorLog(out, buffer); }
final MappedByteBuffer cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaData = createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaData.getInt(cncVersionOffset(0));
/** * Map a {@link CountersReader} over the provided {@link File} for the CnC file. * * @param cncFile for the counters. * @return a {@link CountersReader} over the provided CnC file. */ public static CountersReader mapCounters(final File cncFile) { final MappedByteBuffer cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaData = createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaData.getInt(cncVersionOffset(0)); if (CncFileDescriptor.CNC_VERSION != cncVersion) { throw new AeronException( "Aeron CnC version does not match: version=" + cncVersion + " required=" + CNC_VERSION); } return new CountersReader( createCountersMetaDataBuffer(cncByteBuffer, cncMetaData), createCountersValuesBuffer(cncByteBuffer, cncMetaData), StandardCharsets.US_ASCII); }
public static MappedByteBuffer mapExistingFile(final File file) { return IoUtil.mapExistingFile(file, file.getName()); }
public static MappedByteBuffer mapExistingFile( final File markFile, final Consumer<String> logger, final long offset, final long length) { if (markFile.exists()) { if (null != logger) { logger.accept("INFO: Mark file exists: " + markFile); } return IoUtil.mapExistingFile(markFile, markFile.toString(), offset, length); } return null; }
public static ByteBuffer map(final File file, final int size) { if (file.exists()) { return IoUtil.mapExistingFile(file, file.getName()); } else { return mapNewFile(file, size); } }
public static CountersReader mapCounters() { final File cncFile = CommonContext.newDefaultCncFile(); System.out.println("Command `n Control file " + cncFile); final MappedByteBuffer cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaData = createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaData.getInt(cncVersionOffset(0)); if (CncFileDescriptor.CNC_VERSION != cncVersion) { throw new IllegalStateException("CnC version not supported: file version=" + cncVersion); } return new CountersReader(createCountersMetaDataBuffer(cncByteBuffer, cncMetaData), createCountersValuesBuffer(cncByteBuffer, cncMetaData)); }
public AeronErrorLog(File cncFile, LoggingAdapter log) { cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaDataBuffer = CncFileDescriptor.createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaDataBuffer.getInt(CncFileDescriptor.cncVersionOffset(0)); buffer = CncFileDescriptor.createErrorLogBuffer(cncByteBuffer, cncMetaDataBuffer); if (CncFileDescriptor.CNC_VERSION != cncVersion) { log.warning( "Aeron CnC version mismatch: compiled version = {}, file version = {}", CncFileDescriptor.CNC_VERSION, cncVersion); } }
public AeronErrorLog(File cncFile, LoggingAdapter log) { cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaDataBuffer = CncFileDescriptor.createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaDataBuffer.getInt(CncFileDescriptor.cncVersionOffset(0)); buffer = CncFileDescriptor.createErrorLogBuffer(cncByteBuffer, cncMetaDataBuffer); if (CncFileDescriptor.CNC_VERSION != cncVersion) { log.warning( "Aeron CnC version mismatch: compiled version = {}, file version = {}", CncFileDescriptor.CNC_VERSION, cncVersion); } }
public AeronErrorLog(File cncFile, LoggingAdapter log) { cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaDataBuffer = CncFileDescriptor.createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaDataBuffer.getInt(CncFileDescriptor.cncVersionOffset(0)); buffer = CncFileDescriptor.createErrorLogBuffer(cncByteBuffer, cncMetaDataBuffer); if (CncFileDescriptor.CNC_VERSION != cncVersion) { log.warning( "Aeron CnC version mismatch: compiled version = {}, file version = {}", CncFileDescriptor.CNC_VERSION, cncVersion); } }
private static void printErrors(final PrintStream out, final ClusterMarkFile markFile) { out.println("Cluster component error log:"); ClusterMarkFile.saveErrorLog(out, markFile.errorBuffer()); final String aeronDirectory = markFile.decoder().aeronDirectory(); out.println("Aeron driver error log (directory: " + aeronDirectory + "):"); final File cncFile = new File(aeronDirectory, CncFileDescriptor.CNC_FILE); final MappedByteBuffer cncByteBuffer = IoUtil.mapExistingFile(cncFile, "cnc"); final DirectBuffer cncMetaDataBuffer = CncFileDescriptor.createMetaDataBuffer(cncByteBuffer); final int cncVersion = cncMetaDataBuffer.getInt(CncFileDescriptor.cncVersionOffset(0)); if (CncFileDescriptor.CNC_VERSION != cncVersion) { throw new AeronException( "Aeron CnC version does not match: version=" + cncVersion + " required=" + CncFileDescriptor.CNC_VERSION); } final AtomicBuffer buffer = CncFileDescriptor.createErrorLogBuffer(cncByteBuffer, cncMetaDataBuffer); ClusterMarkFile.saveErrorLog(out, buffer); }