summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-02-28 03:21:24 +0000
committerwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-02-28 03:21:24 +0000
commite031774b4c5bd1b9b889f587cacb5c6f62f11351 (patch)
tree244401ffa71f05683c5e87a1dcc3749acf97fdc2
parent868f706bbb632a1bd789e9bda9c9431218bf35de (diff)
downloadATCD-e031774b4c5bd1b9b889f587cacb5c6f62f11351.tar.gz
ChangeLogTag: Sat Feb 28 03:21:27 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
-rw-r--r--CIAO/ChangeLog7
-rw-r--r--CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp42
-rw-r--r--CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.h5
3 files changed, 50 insertions, 4 deletions
diff --git a/CIAO/ChangeLog b/CIAO/ChangeLog
index 91283609cc7..3d72ba208b1 100644
--- a/CIAO/ChangeLog
+++ b/CIAO/ChangeLog
@@ -1,3 +1,10 @@
+Sat Feb 28 03:21:27 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.h
+ * DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp:
+
+ Added registration with the FLARe ReplicationManager.
+
Fri Feb 27 18:39:39 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
* DAnCE/Interfaces/FaultCorrelationManager.idl
diff --git a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp
index 8ef95df1fa7..d8d9ede0f2c 100644
--- a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp
+++ b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.cpp
@@ -10,6 +10,7 @@
#include "tao/Utils/PolicyList_Destroyer.h"
#include "orbsvcs/CosNamingC.h"
#include "orbsvcs/orbsvcs/Naming/Naming_Loader.h"
+#include "orbsvcs/orbsvcs/LWFT/ReplicationManagerC.h"
#include "ciao/CIAO_common.h"
#include "ciao/Valuetype_Factories/Cookies.h"
#include "ciao/FTComponentServer/CIAO_PropertiesC.h"
@@ -63,6 +64,7 @@ FaultCorrelationManager_Module::usage (void)
DANCE_TRACE ("FaultCorrelationManager_Module::usage");
return "Node Manager Options:\n"
"\t-e,--exec-mgr\t\t [execution manager ior file name]\n"
+ "\t-r,--rep-mgr\t\t [replication manager ior file name]\n"
"\t-d,--domain-nc [NC]\t Default naming context for domain objects.\n"
"\t--instance-nc [NC]\t Default naming context for instance registration directives. No argument indicates Domain NC.\n"
"\t-h,help\t\t\t print this help message\n";
@@ -73,12 +75,13 @@ FaultCorrelationManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
{
ACE_Get_Opt get_opts (argc,
argv,
- ACE_TEXT("d:e:p::c::h"),
+ ACE_TEXT("d:r:e:p::c::h"),
0,
0,
ACE_Get_Opt::RETURN_IN_ORDER);
get_opts.long_option (ACE_TEXT("exec-mgr"), 'e', ACE_Get_Opt::ARG_REQUIRED);
+ get_opts.long_option (ACE_TEXT("rep-mgr"), 'r', ACE_Get_Opt::ARG_REQUIRED);
get_opts.long_option (ACE_TEXT("process-ns"), 'p', ACE_Get_Opt::ARG_OPTIONAL);
get_opts.long_option (ACE_TEXT("create-plan-ns"), 'c', ACE_Get_Opt::ARG_OPTIONAL);
get_opts.long_option (ACE_TEXT("domain-nc"), 'd', ACE_Get_Opt::ARG_REQUIRED);
@@ -113,6 +116,9 @@ FaultCorrelationManager_Module::parse_args (int argc, ACE_TCHAR * argv[])
case 'e':
this->options_.exec_mgr_ior_ = get_opts.opt_arg ();
break;
+ case 'r':
+ this->options_.rep_mgr_ior_ = get_opts.opt_arg ();
+ break;
case 'h':
//case '?': // Display help for use of the server.
@@ -317,6 +323,15 @@ FaultCorrelationManager_Module::create_object (CORBA::ORB_ptr orb,
DAnCE::ExecutionManagerDaemon_var exec_mgr =
DAnCE::ExecutionManagerDaemon::_narrow (obj.in ());
+ if (CORBA::is_nil (exec_mgr.in ()))
+ {
+ DANCE_DEBUG ((LM_ERROR,
+ DLINFO "FaultCorrelationManager_Module::create_object - "
+ "could not resolve ExecutionManager.\n"));
+
+ return CORBA::Object::_nil ();
+ }
+
//Creating node manager servant
DAnCE::FaultCorrelationManager_Impl * fcm = 0;
@@ -339,7 +354,7 @@ FaultCorrelationManager_Module::create_object (CORBA::ORB_ptr orb,
PortableServer::string_to_ObjectId (FCM_OID);
this->fcm_poa_->activate_object_with_id (oid, fcm);
- // Getting node manager ior
+ // Getting node manager ior
CORBA::Object_var fcm_obj = this->fcm_poa_->id_to_reference (oid.in ());
CORBA::String_var ior = orb->object_to_string (fcm_obj.in ());
@@ -371,6 +386,29 @@ FaultCorrelationManager_Module::create_object (CORBA::ORB_ptr orb,
PortableServer::POAManager_var mgr = this->root_poa_->the_POAManager ();
mgr->activate ();
+ // register FCM as a listener to ReplicationManager failure reports
+
+ // TODO somewhere we have to unregister this again!
+
+ obj = orb->string_to_object (this->options_.rep_mgr_ior_);
+
+ ReplicationManager_var rep_mgr =
+ ReplicationManager::_narrow (obj.in ());
+
+ if (CORBA::is_nil (rep_mgr.in ()))
+ {
+ DANCE_DEBUG ((LM_ERROR,
+ DLINFO "FaultCorrelationManager_Module::create_object - "
+ "could not resolve ReplicationManager.\n"));
+
+ return CORBA::Object::_nil ();
+ }
+
+ FLARE::FaultNotification_var fn =
+ FLARE::FaultNotification::_narrow (fcm_obj.in ());
+
+ rep_mgr->register_fault_notification (fn.in ());
+
// Finishing Deployment part
DANCE_DEBUG ((LM_NOTICE, DLINFO "FaultCorrelationManager_Module::create_object - "
"FaultCorrelationManager is running...\n"));
diff --git a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.h b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.h
index 0a6080e2704..7c195a1904e 100644
--- a/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.h
+++ b/CIAO/DAnCE/FaultCorrelationManager/FaultCorrelationManager_Module.h
@@ -31,7 +31,6 @@
#include "tao/Object_Loader.h"
#include "DAnCE/Deployment/DAnCE_Loader.h"
#include "DAnCE/Deployment/Deployment_common.h"
-//#include "FaultCorrelation_Task.h"
namespace DAnCE {
class FaultCorrelationManager_Impl;
@@ -58,6 +57,7 @@ class FaultCorrelationManager_Module_Export FaultCorrelationManager_Module
const char * domain_nc_;
const char * instance_nc_;
const char * exec_mgr_ior_;
+ const char * rep_mgr_ior_;
SOptions()
: process_ns_ (false),
@@ -66,7 +66,8 @@ class FaultCorrelationManager_Module_Export FaultCorrelationManager_Module
create_plan_ns_ior_ (0),
domain_nc_ (0),
instance_nc_ (0),
- exec_mgr_ior_ (0)
+ exec_mgr_ior_ ("file://EM.ior"),
+ rep_mgr_ior_ ("file://RM.ior")
{
}
};