/** * @param file * @return * @throws Exception */ private JournalFileImpl readFileHeader(final SequentialFile file) throws Exception { ByteBuffer bb = fileFactory.newBuffer(JournalImpl.SIZE_HEADER); file.read(bb); int journalVersion = bb.getInt(); if (journalVersion != JournalImpl.FORMAT_VERSION) { boolean isCompatible = false; for (int v : JournalImpl.COMPATIBLE_VERSIONS) { if (v == journalVersion) { isCompatible = true; } } if (!isCompatible) { throw ActiveMQJournalBundle.BUNDLE.journalFileMisMatch(); } } int readUserVersion = bb.getInt(); if (readUserVersion != userVersion) { throw ActiveMQJournalBundle.BUNDLE.journalDifferentVersion(); } long fileID = bb.getLong(); fileFactory.releaseBuffer(bb); bb = null; return new JournalFileImpl(file, fileID, journalVersion); }
/** * @param file * @return * @throws Exception */ private JournalFileImpl readFileHeader(final SequentialFile file) throws Exception { ByteBuffer bb = fileFactory.newBuffer(JournalImpl.SIZE_HEADER); file.read(bb); int journalVersion = bb.getInt(); if (journalVersion != JournalImpl.FORMAT_VERSION) { boolean isCompatible = false; for (int v : JournalImpl.COMPATIBLE_VERSIONS) { if (v == journalVersion) { isCompatible = true; } } if (!isCompatible) { throw ActiveMQJournalBundle.BUNDLE.journalFileMisMatch(); } } int readUserVersion = bb.getInt(); if (readUserVersion != userVersion) { throw ActiveMQJournalBundle.BUNDLE.journalDifferentVersion(); } long fileID = bb.getLong(); fileFactory.releaseBuffer(bb); bb = null; return new JournalFileImpl(file, fileID, journalVersion); }
private JournalFile reinitializeFile(final JournalFile file) throws Exception { long newFileID = generateFileID(); SequentialFile sf = file.getFile(); sf.open(1, false); int position = JournalImpl.initFileHeader(fileFactory, sf, userVersion, newFileID); JournalFile jf = new JournalFileImpl(sf, newFileID, JournalImpl.FORMAT_VERSION); sf.position(position); sf.close(); return jf; }
private JournalFile reinitializeFile(final JournalFile file) throws Exception { long newFileID = generateFileID(); SequentialFile sf = file.getFile(); sf.open(1, false); int position = JournalImpl.initFileHeader(fileFactory, sf, userVersion, newFileID); JournalFile jf = new JournalFileImpl(sf, newFileID, JournalImpl.FORMAT_VERSION); sf.position(position); sf.close(); return jf; }
JournalFile file = new JournalFileImpl(controlFile, 0, JournalImpl.FORMAT_VERSION);
JournalFile file = new JournalFileImpl(controlFile, 0, JournalImpl.FORMAT_VERSION);
return new JournalFileImpl(sequentialFile, fileID, JournalImpl.FORMAT_VERSION);
return new JournalFileImpl(sequentialFile, fileID, JournalImpl.FORMAT_VERSION);
/** * @throws Exception */ protected void openFile() throws Exception { flush(false); currentFile = filesRepository.openFileCMP(); sequentialFile = currentFile.getFile(); sequentialFile.open(1, false); currentFile = new JournalFileImpl(sequentialFile, nextOrderingID++, JournalImpl.FORMAT_VERSION); final int fileSize = journal.getFileSize(); if (bufferWrite != null && bufferWrite.capacity() < fileSize) { fileFactory.releaseDirectBuffer(bufferWrite); bufferWrite = null; writingChannel = null; } if (bufferWrite == null) { final ByteBuffer bufferWrite = fileFactory.allocateDirectBuffer(fileSize); this.bufferWrite = bufferWrite; writingChannel = ActiveMQBuffers.wrappedBuffer(bufferWrite); } else { writingChannel.clear(); bufferWrite.clear(); } JournalImpl.writeHeader(writingChannel, journal.getUserVersion(), currentFile.getFileID()); }
/** * @throws Exception */ protected void openFile() throws Exception { flush(false); currentFile = filesRepository.openFileCMP(); sequentialFile = currentFile.getFile(); sequentialFile.open(1, false); currentFile = new JournalFileImpl(sequentialFile, nextOrderingID++, JournalImpl.FORMAT_VERSION); final int fileSize = journal.getFileSize(); if (bufferWrite != null && bufferWrite.capacity() < fileSize) { fileFactory.releaseDirectBuffer(bufferWrite); bufferWrite = null; writingChannel = null; } if (bufferWrite == null) { final ByteBuffer bufferWrite = fileFactory.allocateDirectBuffer(fileSize); this.bufferWrite = bufferWrite; writingChannel = ActiveMQBuffers.wrappedBuffer(bufferWrite); } else { writingChannel.clear(); bufferWrite.clear(); } JournalImpl.writeHeader(writingChannel, journal.getUserVersion(), currentFile.getFileID()); }
dataFiles.add(new JournalFileImpl(file, 0, JournalImpl.FORMAT_VERSION)); newFiles.add(new JournalFileImpl(file, 0, JournalImpl.FORMAT_VERSION));