use of com.ibm.streamsx.kafka.KafkaOperatorNotRegisteredException in project streamsx.kafka by IBMStreams.
the class CrKafkaConsumerGroupClient method processCheckpointEvent.
/**
* Creates a checkpoint of the current state when used in consistent region.
* Following data is included into the checkpoint in this sequence:
* <ul>
* <li>assignablePartitions</li>
* <li>assignedPartitionsOffsetManager</li>
* <li>current committed offsets fetched from the cluster. Gathering this data is expensive as it involves a Kafka server request.
* </ul
* @param checkpoint the reference of the checkpoint object
* @see com.ibm.streamsx.kafka.clients.consumer.AbstractKafkaConsumerClient#processCheckpointEvent(com.ibm.streams.operator.state.Checkpoint)
*/
@Override
protected void processCheckpointEvent(Checkpoint checkpoint) {
trace.info(MsgFormatter.format("processCheckpointEvent() [{0}] sequenceId = {1}", state, checkpoint.getSequenceId()));
try {
Set<String> registeredConsumers = this.crGroupCoordinatorMxBean.getRegisteredConsumerOperators();
final String myOperatorName = getOperatorContext().getName();
if (ENABLE_CHECK_REGISTERED_ON_CHECKPOINT) {
if (!registeredConsumers.contains(myOperatorName)) {
final String msg = MsgFormatter.format("My operator name not registered in group MXBean: {0}", myOperatorName);
trace.error(msg);
throw new KafkaOperatorNotRegisteredException(msg);
}
}
ObjectOutputStream oStream = checkpoint.getOutputStream();
oStream.writeObject(myOperatorName);
oStream.writeObject(registeredConsumers);
oStream.writeObject(this.assignedPartitionsOffsetManager);
if (trace.isEnabledFor(DEBUG_LEVEL)) {
trace.log(DEBUG_LEVEL, "data written to checkpoint: myOperatorName = " + myOperatorName);
trace.log(DEBUG_LEVEL, "data written to checkpoint: contributingOperators = " + registeredConsumers);
trace.log(DEBUG_LEVEL, "data written to checkpoint: assignedPartitionsOffsetManager = " + this.assignedPartitionsOffsetManager);
}
} catch (Exception e) {
throw new KafkaOperatorRuntimeException(e.getMessage(), e);
}
trace.log(DEBUG_LEVEL, "processCheckpointEvent() - exiting.");
}
Aggregations