Мы пытаемся извлечь ключи из кеша NiFi, который часто используется и имеет большое количество записей. Однако мы получаем ошибку
java -jar groovy-all-2.4.13.jar dcache.groovy xxxxxxx.systems.xx.xxxx 9999 keys | wc -l
Caught: java.io.EOFException
java.io.EOFException
at java_io_DataInput$readInt.call(Unknown Source)
at dcache$_run_closure1$_closure5.doCall(dcache.groovy:141)
at dcache$_run_closure1.doCall(dcache.groovy:140)
at dcache.run(dcache.groovy:44)
5097
Мы не знакомы с groovy. Однако эта команда работает с другим кешем с меньшим количеством записей и редко используется. Это код, который мы используем
def dos = new DataOutputStream(output)
def dis = new DataInputStream(input)
dos.writeUTF('keySet')
dos.flush()
int numKeys = dis.readInt()
(0..numKeys-1).each {
def length = dis.readInt()
def bytes = new byte[length]
dis.readFully(bytes)
println new String(bytes)
}