クロニクルキューv4.5.15を使用しています。私は私にキュー内にある要素の数を伝えるための方法を作成しました:今後のファイルのクロニクル 'ファイルが見つかりません'
public long getQueueSize() {
long index = getQueueIndex(); // I store the index in a persistent map so this method simply retrieves the current index from the map.
ExcerptTailer tailer = queue.createTailer();
long lastIndex = tailer.toEnd().index(); // Get the last index in our queue.
long count = queue.countExcerpts(queueIndex, lastIndex);
return count
}
私は一晩テストを実行し、私のコンポーネントは、12月22日のために書かれcq4キューファイルを持っていました。それは毎日のサイクルです。今日キューにいくつかの要素を追加しようとしましたが、例外がスローされました'IllegalStateException: 'file not found' for the upperCycle, file ../path_to_queue/20161314.cq4
。
スタックトレース:
Caused by java.lang.IllegalStateException: java.lang.IllegalStateException: 'file not found' for the upperCycle, file=/var/tmp/app/20161224.cq4
at net.openhft.chronicle.queue.impl.single.SingleChronicleQueue.countExcertps(SingleChronicleQueue.java:359(
at ...
12月23日の今日、なぜクロニクルは将来のファイルを探していると見て?
私は最後のインデックスを取得する方法と関係がありますか?
おかげで
は、あなたがこのエラーは年代記のどこに表示されないよう、全体のスタックトレースを含めることはできますか? –
私はstacktraceを追加しました。 SiongleChronicleQueueクラスの665行目にこの例外がスローされています。メソッドtoKeyはこの例外をスローします。 – sam
私は、メッセージが異なる理由である古いバージョンを実行しています。このコードがそのバージョン以降に変更されているのを見ると、バージョン4.5.19を試すことができますか? –