From e89e390cda0aa65aece21fbbb05c1e98c9d73bc0 Mon Sep 17 00:00:00 2001 From: Jan Steemann Date: Mon, 23 Jun 2014 17:55:08 +0200 Subject: [PATCH] re-added replication applier --- arangod/V8Server/v8-vocbase.cpp | 12 ++++++------ arangod/VocBase/server.cpp | 23 +++++++++++++++++++++++ 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/arangod/V8Server/v8-vocbase.cpp b/arangod/V8Server/v8-vocbase.cpp index 801569f8cc..4b57dace34 100644 --- a/arangod/V8Server/v8-vocbase.cpp +++ b/arangod/V8Server/v8-vocbase.cpp @@ -4995,11 +4995,11 @@ static v8::Handle JS_StartApplierReplication (v8::Arguments const& ar TRI_vocbase_t* vocbase = GetContextVocBase(); - if (vocbase == 0) { + if (vocbase == nullptr) { TRI_V8_EXCEPTION(scope, TRI_ERROR_ARANGO_DATABASE_NOT_FOUND); } - if (vocbase->_replicationApplier == 0) { + if (vocbase->_replicationApplier == nullptr) { TRI_V8_EXCEPTION(scope, TRI_ERROR_INTERNAL); } @@ -5039,11 +5039,11 @@ static v8::Handle JS_StopApplierReplication (v8::Arguments const& arg TRI_vocbase_t* vocbase = GetContextVocBase(); - if (vocbase == 0) { + if (vocbase == nullptr) { TRI_V8_EXCEPTION(scope, TRI_ERROR_ARANGO_DATABASE_NOT_FOUND); } - if (vocbase->_replicationApplier == 0) { + if (vocbase->_replicationApplier == nullptr) { TRI_V8_EXCEPTION(scope, TRI_ERROR_INTERNAL); } @@ -5069,11 +5069,11 @@ static v8::Handle JS_StateApplierReplication (v8::Arguments const& ar TRI_vocbase_t* vocbase = GetContextVocBase(); - if (vocbase == 0) { + if (vocbase == nullptr) { TRI_V8_EXCEPTION(scope, TRI_ERROR_ARANGO_DATABASE_NOT_FOUND); } - if (vocbase->_replicationApplier == 0) { + if (vocbase->_replicationApplier == nullptr) { TRI_V8_EXCEPTION(scope, TRI_ERROR_INTERNAL); } diff --git a/arangod/VocBase/server.cpp b/arangod/VocBase/server.cpp index 525beeee80..df11e94007 100644 --- a/arangod/VocBase/server.cpp +++ b/arangod/VocBase/server.cpp @@ -1446,6 +1446,29 @@ static int InitAll (TRI_server_t* server) { // start the compactor for the database TRI_StartCompactorVocBase(vocbase); + + // start the replication applier + vocbase->_replicationApplier = TRI_CreateReplicationApplier(vocbase); + + if (vocbase->_replicationApplier == nullptr) { + // TODO + LOG_FATAL_AND_EXIT("initialising replication applier for database '%s' failed", vocbase->_name); + } + + if (vocbase->_replicationApplier->_configuration._autoStart) { + if (server->_disableReplicationAppliers) { + LOG_INFO("replication applier explicitly deactivated for database '%s'", vocbase->_name); + } + else { + int res = TRI_StartReplicationApplier(vocbase->_replicationApplier, 0, false); + + if (res != TRI_ERROR_NO_ERROR) { + LOG_WARNING("unable to start replication applier for database '%s': %s", + vocbase->_name, + TRI_errno_string(res)); + } + } + } } }