@Override public synchronized int readLob( long lobId, byte[] hmac, long offset, byte[] buff, int off, int length) { for (int i = 0, count = 0; i < transferList.size(); i++) { Transfer transfer = transferList.get(i); try { traceOperation("LOB_READ", (int) lobId); transfer.writeInt(SessionRemote.LOB_READ); transfer.writeLong(lobId); if (clientVersion >= Constants.TCP_PROTOCOL_VERSION_12) { transfer.writeBytes(hmac); } transfer.writeLong(offset); transfer.writeInt(length); done(transfer); length = transfer.readInt(); if (length <= 0) { return length; } transfer.readBytes(buff, off, length); return length; } catch (IOException e) { removeServer(e, i--, ++count); } } return 1; }