private void replyError() {
if (dismissed.get()) {
return;
}
ErrorCode err = err(SysErrors.MANAGEMENT_NODE_UNAVAILABLE_ERROR,
"management node[uuid:%s] is unavailable", mgmtNodeId);
logger.warn(String.format("management node[uuid:%s] becomes unavailable, reply %s to message[%s]. Message metadata dump: %s",
mgmtNodeId, err, rmeta.messageName, JSONObjectUtil.toJsonString(rmeta)));
if (rmeta.needApiEvent) {
APIEvent evt = new APIEvent(rmeta.msgId);
eventProperty(evt);
evt.setError(err);
wire.publish(evt);
} else {
MessageReply reply = new MessageReply();
reply.setError(err);
AMQP.BasicProperties.Builder builder = new AMQP.BasicProperties.Builder();
reply.setAMQPProperties(builder.deliveryMode(1).build());
reply.getHeaders().put(CloudBus.HEADER_IS_MESSAGE_REPLY, Boolean.TRUE.toString());
reply.putHeaderEntry(CloudBus.HEADER_CORRELATION_ID, rmeta.msgId);
reply.setServiceId(rmeta.replyTo);
wire.send(reply, false);
}
dismiss();
}