anchor.diff:  image:https://javadoc-badge.appspot.com/net.openhft/chronicle-queue.svg?label=javadoc[JavaDoc, link=https://www.javadoc.io/doc/net.openhft/chronicle-queue]
   image:https://img.shields.io/github/license/OpenHFT/Chronicle-Queue[GitHub]
   image:https://img.shields.io/gitter/room/OpenHFT/Lobby.svg?style=popout[link="https://gitter.im/OpenHFT/Lobby"]
  -//image:https://javadoc.io/badge2/net.openhft/chronicle-queue/javadoc.svg[link="https://www.javadoc.io/doc/net.openhft/chronicle-queue/latest/index.html"]
  +
   
   image::docs/images/Queue_line.png[]
   
  
positive.code: === File Rolling
  
  Chronicle Queue is designed to roll its files depending on the roll cycle chosen when queue is created (see https://github.com/OpenHFT/Chronicle-Queue/blob/master/src/main/java/net/openhft/chronicle/queue/RollCycles.java[RollCycles]).
  When the roll cycle reaches the point it should roll, appender will atomically writes `EOF` mark at the end of current file to indicate that no other appender should write to this file and no tailer should read further, and instead everyone should use new file.
  
  If the process was shutdown, and restarted later when the roll cycle should be using a new file, an appender will try to locate old files and write an `EOF` mark in them to help tailers reading them.
  However, tailers are robust enough to understand that the `EOF` mark should be present in the file from previous roll cycle even if it's not written, after a certain timeout.
  
negative.code: });
  ----
  
  You can print the contents of the queue. You can see the first two, and last two messages store the same data.
  
  [source,Java]
  ----
  