summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhuangming <huangminghuang@users.noreply.github.com>2003-12-05 02:16:39 +0000
committerhuangming <huangminghuang@users.noreply.github.com>2003-12-05 02:16:39 +0000
commitf444cb80d8b453adde1495eecedda025382f7ca0 (patch)
treeba48f5cc1c4eee275e19c46b6775568a6212dd04
parentd63f9639991f65ee6799d0bc2e36f491165c525d (diff)
downloadATCD-f444cb80d8b453adde1495eecedda025382f7ca0.tar.gz
*** empty log message ***
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector.cpp145
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector.h48
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Initializer.cpp51
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Initializer.h34
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Interceptor.cpp78
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Interceptor.h58
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp93
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h4
-rw-r--r--TAO/orbsvcs/FTRT_Event_Service/Event_Service/svc.conf2
9 files changed, 436 insertions, 77 deletions
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector.cpp b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector.cpp
new file mode 100644
index 00000000000..93d43bb38b8
--- /dev/null
+++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector.cpp
@@ -0,0 +1,145 @@
+// $Id$
+#include "Crash_Injector.h"
+#include "Crash_Injector_Initializer.h"
+#include "ace/Get_Opt.h"
+
+#ifndef WIN32
+#include <sys/time.h>
+#endif
+
+extern "C" void crash_handler(int)
+{
+ ACE_DEBUG((LM_DEBUG, "FTRT_Event_Service crashed\n"));
+ exit(1);
+}
+
+
+namespace {
+ Crash_Injector* injector;
+
+ const char* types[] = {
+ "immediate",
+ "after",
+ "timeout:"
+ };
+}
+
+Crash_Injector::Crash_Injector()
+: crash_type_(CRASH_IMMEDIATELY)
+, num_of_invocation_(0)
+, done_(false)
+{
+ ACE_Service_Config::static_svcs ()->insert (&ace_svc_desc_Crash_Injector);
+
+ PortableInterceptor::ORBInitializer_var orb_initializer = new Crash_Injector_Initializer;
+
+ PortableInterceptor::register_orb_initializer (orb_initializer.in ());
+ injector = this;
+}
+
+Crash_Injector::~Crash_Injector()
+{
+}
+
+Crash_Injector* Crash_Injector::instance()
+{
+ return injector;
+}
+
+
+int Crash_Injector::init (int argc, ACE_TCHAR* argv[] )
+{
+ ACE_Get_Opt get_opt(argc, argv, ACE_LIB_TEXT("n::o::t::"), 0, 0, ACE_Get_Opt::PERMUTE_ARGS, 1);
+ get_opt.long_option(ACE_LIB_TEXT("num_invocation"), 'n', ACE_Get_Opt::ARG_OPTIONAL);
+ get_opt.long_option(ACE_LIB_TEXT("operation"), 'o', ACE_Get_Opt::ARG_OPTIONAL);
+ get_opt.long_option(ACE_LIB_TEXT("type"), 't', ACE_Get_Opt::ARG_OPTIONAL);
+
+ int opt;
+
+ while ((opt = get_opt ()) != EOF)
+ {
+ switch (opt) {
+ case 'n':
+ if (get_opt.opt_arg ())
+ crash_after_number_of_invocation_ = ACE_OS::atoi(get_opt.opt_arg ());
+ break;
+ case 'o':
+ if (get_opt.opt_arg ())
+
+ operation_ = get_opt.opt_arg ();
+ break;
+ case 't':
+ if (get_opt.opt_arg ()) {
+ if (ACE_OS::strcasecmp(get_opt.opt_arg (), "immediate") == 0)
+ crash_type_ = CRASH_IMMEDIATELY;
+ else if (ACE_OS::strcasecmp(get_opt.opt_arg (), "after_reply") == 0)
+ crash_type_ = CRASH_AFTER_REPLY;
+ else if (ACE_OS::strncasecmp("timeout:", get_opt.opt_arg (), 8)==0)
+
+ {
+ crash_type_ = CRASH_TIMEOUT;
+ this->time_to_crash_in_ms_ = ACE_OS::atoi(get_opt.opt_arg ()+8);
+ if (this->time_to_crash_in_ms_ ==0)
+ ACE_ERROR_RETURN((LM_ERROR, "Crash_Injector : Invalid timeout value\n"), -1);
+ }
+ }
+ break;
+ default:
+ return -1;
+ }
+ }
+ return 0;
+}
+
+void Crash_Injector::check_on_receive_request(const char* operation)
+{
+ if (crash_type_ < CRASH_AFTER_REPLY && ACE_OS::strcmp(operation_.c_str() ,operation) == 0 )
+ if (crash_after_number_of_invocation_ == ++num_of_invocation_)
+ {
+ switch (crash_type_) {
+ case CRASH_IMMEDIATELY:
+ exit(1);
+ case CRASH_TIMEOUT:
+ this->crash_timeout();
+ }
+ }
+}
+
+void Crash_Injector::check_on_sending_reply(const char* operation)
+{
+ if (crash_type_ == CRASH_AFTER_REPLY && ACE_OS::strcmp(operation_.c_str() ,operation) == 0 )
+ {
+ if (crash_after_number_of_invocation_ == ++num_of_invocation_)
+ done_ = true;
+ }
+}
+
+
+
+void Crash_Injector::crash_timeout()
+{
+#ifndef WIN32
+ if (time_to_crash > 0) {
+ signal(SIGALRM, &crash_handler);
+ struct itimerval in, out;
+ in.it_value.tv_sec = time_to_crash/1000;
+ in.it_value.tv_usec = (time_to_crash%1000)*1000;
+ setitimer(ITIMER_REAL, &in, &out);
+ }
+ else
+ exit(1);
+#endif
+
+}
+
+
+ACE_FACTORY_DEFINE (CRASH, Crash_Injector)
+
+
+ACE_STATIC_SVC_DEFINE (Crash_Injector,
+ ACE_TEXT("Crash_Injector"),
+ ACE_SVC_OBJ_T,
+ &ACE_SVC_NAME (Crash_Injector),
+ ACE_Service_Type::DELETE_THIS
+ | ACE_Service_Type::DELETE_OBJ,
+ 0)
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector.h b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector.h
new file mode 100644
index 00000000000..2093f39d861
--- /dev/null
+++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector.h
@@ -0,0 +1,48 @@
+// $Id$
+#ifndef CRASH_INJECTOR_H
+#define CRASH_INJECTOR_H
+#include "ace/Service_Config.h"
+
+#include "ace/Service_Object.h"
+#include "ace/SString.h"
+
+#define CRASH_Export
+#define CRASH
+
+class Crash_Injector : public ACE_Service_Object
+{
+public:
+ Crash_Injector();
+ ~Crash_Injector();
+
+ static Crash_Injector* instance();
+
+ virtual int init (int argc, ACE_TCHAR* []);
+
+ void check_on_receive_request(const char* operation);
+ void check_on_sending_reply(const char* operation);
+
+ bool work_done() { return done_; }
+private:
+ void crash_timeout();
+
+ enum CRASH_TYPE {
+ CRASH_IMMEDIATELY,
+ CRASH_TIMEOUT,
+ CRASH_AFTER_REPLY
+ };
+
+ CRASH_TYPE crash_type_;
+ ACE_CString operation_;
+ int time_to_crash_in_ms_;
+ int crash_after_number_of_invocation_;
+ int num_of_invocation_;
+ bool done_;
+};
+
+
+ACE_STATIC_SVC_DECLARE_EXPORT (CRASH, Crash_Injector)
+ACE_STATIC_SVC_REQUIRE(Crash_Injector)
+ACE_FACTORY_DECLARE (CRASH, Crash_Injector)
+
+#endif
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Initializer.cpp b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Initializer.cpp
new file mode 100644
index 00000000000..cb80769cc07
--- /dev/null
+++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Initializer.cpp
@@ -0,0 +1,51 @@
+// $Id$
+
+#include "Crash_Injector_Initializer.h"
+#include "Crash_Injector_Interceptor.h"
+
+Crash_Injector_Initializer::Crash_Injector_Initializer ()
+{
+}
+
+void
+Crash_Injector_Initializer::pre_init (
+ PortableInterceptor::ORBInitInfo_ptr
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+void
+Crash_Injector_Initializer::post_init (
+ PortableInterceptor::ORBInitInfo_ptr info
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+
+ /*
+ PortableInterceptor::ClientRequestInterceptor_var client_interceptor;
+ PortableInterceptor::ClientRequestInterceptor_ptr ctmp;
+
+ ACE_NEW_THROW_EX(ctmp,
+ TAO_Set_Update_Interceptor,
+ CORBA::NO_MEMORY());
+
+ client_interceptor = ctmp;
+
+ info->add_client_request_interceptor (client_interceptor.in()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+ */
+
+ PortableInterceptor::ServerRequestInterceptor_var server_interceptor;
+ PortableInterceptor::ServerRequestInterceptor_ptr stmp;
+
+ ACE_NEW_THROW_EX(stmp,
+ Crash_Injector_Interceptor,
+ CORBA::NO_MEMORY());
+ server_interceptor = stmp;
+
+ info->add_server_request_interceptor (server_interceptor.in()
+ ACE_ENV_ARG_PARAMETER);
+ ACE_CHECK;
+}
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Initializer.h b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Initializer.h
new file mode 100644
index 00000000000..0921bea47b2
--- /dev/null
+++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Initializer.h
@@ -0,0 +1,34 @@
+// $Id$
+
+
+#ifndef CRASH_INJECTOR_INITIALIZER__H_
+#define CRASH_INJECTOR_INITIALIZER__H_
+#include /**/ "ace/pre.h"
+
+#include "tao/PortableInterceptorC.h"
+#include "tao/LocalObject.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class Crash_Injector_Initializer
+ : public virtual PortableInterceptor::ORBInitializer
+ , public virtual TAO_Local_RefCounted_Object
+{
+public:
+ Crash_Injector_Initializer ();
+
+ virtual void pre_init (PortableInterceptor::ORBInitInfo_ptr info
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void post_init (PortableInterceptor::ORBInitInfo_ptr info
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+};
+
+#include /**/ "ace/post.h"
+#endif /* CRASH_INJECTOR_INITIALIZER__H_ */
+
+
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Interceptor.cpp b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Interceptor.cpp
new file mode 100644
index 00000000000..99fb4d05ef3
--- /dev/null
+++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Interceptor.cpp
@@ -0,0 +1,78 @@
+// $Id$
+
+#include "Crash_Injector_Interceptor.h"
+#include "Crash_Injector.h"
+
+Crash_Injector_Interceptor::Crash_Injector_Interceptor ()
+{
+}
+
+Crash_Injector_Interceptor::~Crash_Injector_Interceptor ()
+{
+}
+
+
+char *
+Crash_Injector_Interceptor::name (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ return CORBA::string_dup ("Crash_Injector_Interceptor");
+}
+
+void
+Crash_Injector_Interceptor::destroy (ACE_ENV_SINGLE_ARG_DECL_NOT_USED)
+ACE_THROW_SPEC ((CORBA::SystemException))
+{
+}
+
+void
+Crash_Injector_Interceptor::receive_request_service_contexts (
+ PortableInterceptor::ServerRequestInfo_ptr ri
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest))
+{
+
+
+}
+
+
+
+
+void
+Crash_Injector_Interceptor::receive_request (PortableInterceptor::ServerRequestInfo_ptr ri
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest))
+{
+ CORBA::String_var operation = ri->operation (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ Crash_Injector::instance()->check_on_receive_request(operation.in());
+}
+
+void
+Crash_Injector_Interceptor::send_reply (PortableInterceptor::ServerRequestInfo_ptr ri
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException))
+{
+ CORBA::String_var operation = ri->operation (ACE_ENV_SINGLE_ARG_PARAMETER);
+ ACE_CHECK;
+ Crash_Injector::instance()->check_on_sending_reply(operation.in());
+}
+
+void
+Crash_Injector_Interceptor::send_exception (
+ PortableInterceptor::ServerRequestInfo_ptr ri
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest))
+{
+}
+
+void
+Crash_Injector_Interceptor::send_other (PortableInterceptor::ServerRequestInfo_ptr
+ ACE_ENV_ARG_DECL_NOT_USED)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest))
+{
+}
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Interceptor.h b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Interceptor.h
new file mode 100644
index 00000000000..e07db863f2d
--- /dev/null
+++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/Crash_Injector_Interceptor.h
@@ -0,0 +1,58 @@
+// -*- C++ -*-
+
+//=============================================================================
+/**
+ * @file Crash_Injector_Interceptor.h
+ *
+ * $Id$
+ *
+ * @author Huang-Ming Huang <hh1@cse.wustl.edu>
+ */
+//=============================================================================
+#ifndef CRASH_INJECTOR_INTERCEPTOR_H
+#define CRASH_INJECTOR_INTERCEPTOR_H
+#include "tao/PortableInterceptorC.h"
+
+#if !defined (ACE_LACKS_PRAGMA_ONCE)
+# pragma once
+#endif /* ACE_LACKS_PRAGMA_ONCE */
+
+class Crash_Injector_Interceptor :
+ public PortableInterceptor::ServerRequestInterceptor
+{
+public:
+ Crash_Injector_Interceptor();
+ ~Crash_Injector_Interceptor();
+
+ virtual char * name (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void destroy (ACE_ENV_SINGLE_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void receive_request (PortableInterceptor::ServerRequestInfo_ptr ri
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest));
+
+ virtual void receive_request_service_contexts (
+ PortableInterceptor::ServerRequestInfo_ptr
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest));
+
+ virtual void send_reply (PortableInterceptor::ServerRequestInfo_ptr ri
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException));
+
+ virtual void send_exception (PortableInterceptor::ServerRequestInfo_ptr ri
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest));
+
+ virtual void send_other (PortableInterceptor::ServerRequestInfo_ptr
+ ACE_ENV_ARG_DECL)
+ ACE_THROW_SPEC ((CORBA::SystemException,
+ PortableInterceptor::ForwardRequest));
+};
+#endif
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp
index 9d1e3c0b718..277c114122b 100644
--- a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp
+++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.cpp
@@ -14,73 +14,12 @@
#include "orbsvcs/FtRtEvent/Utils/Log.h"
#include "orbsvcs/FtRtEvent/Utils/RT_Task.h"
#include "orbsvcs/Event/EC_Default_Factory.h"
-
-#ifndef WIN32
-#include <sys/time.h>
-#endif
+#include "Crash_Injector.h"
ACE_RCSID (Event_Service,
FT_EventService,
"$Id$")
-static int time_to_crash;
-
-extern "C" void crash_handler(int)
-{
- ACE_DEBUG((LM_DEBUG, "FTRT_Event_Service crashed\n"));
- exit(1);
-}
-
-class Fault_Event_Service : public TAO_FTEC_Event_Channel
-{
-public:
- Fault_Event_Service(CORBA::ORB_var orb,
- PortableServer::POA_var poa,
- RtecScheduler::Scheduler_var scheduler,
- int fault_no);
-
-private:
- virtual void push (
- const FtRtecEventChannelAdmin::ObjectId & oid,
- const RtecEventComm::EventSet & data
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException, FtRtecEventComm::InvalidObjectID));
- int msg_count_;
- int fault_no_;
-};
-
-Fault_Event_Service::Fault_Event_Service(CORBA::ORB_var orb,
- PortableServer::POA_var poa,
- RtecScheduler::Scheduler_var scheduler,
- int fault_no)
-: TAO_FTEC_Event_Channel(orb, poa,scheduler), msg_count_(0), fault_no_(fault_no)
-{
-}
-
-void Fault_Event_Service::push (const FtRtecEventChannelAdmin::ObjectId & oid,
- const RtecEventComm::EventSet & data
- ACE_ENV_ARG_DECL)
- ACE_THROW_SPEC ((CORBA::SystemException, FtRtecEventComm::InvalidObjectID))
-{
- if (fault_no_ == msg_count_++) {
-#ifndef WIN32
- if (time_to_crash > 0) {
- signal(SIGALRM, &crash_handler);
- struct itimerval in, out;
- in.it_value.tv_sec = time_to_crash/1000;
- in.it_value.tv_usec = (time_to_crash%1000)*1000;
- setitimer(ITIMER_REAL, &in, &out);
- }
- else
-#endif
- {
- ACE_DEBUG((LM_DEBUG, "FTRT_Event_Service crashing on %d-th message\n", msg_count_-1));
- exit(1);
- }
- }
- TAO_FTEC_Event_Channel::push(oid, data ACE_ENV_ARG_PARAMETER);
-}
-
int ACE_TMAIN (int argc, ACE_TCHAR* argv[])
@@ -95,7 +34,6 @@ FT_EventService::FT_EventService()
, sched_impl_(0)
, membership_(TAO_FTEC_Event_Channel::NONE)
, task_(orb_)
-, fault_no_(-1)
{
}
@@ -153,8 +91,10 @@ FT_EventService::run(int argc, ACE_TCHAR* argv[])
CosNaming::NamingContext::_narrow (naming_obj.in () ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
- RtecScheduler::Scheduler_var scheduler =
- setup_scheduler(naming_context.in()
+ RtecScheduler::Scheduler_var scheduler =
+
+ setup_scheduler(naming_context.in()
+
ACE_ENV_ARG_PARAMETER);
ACE_CHECK_RETURN(-1);
@@ -165,7 +105,7 @@ FT_EventService::run(int argc, ACE_TCHAR* argv[])
// Activate the Event channel implementation
- Fault_Event_Service ec(orb_, root_poa, scheduler, fault_no_);
+ TAO_FTEC_Event_Channel ec(orb_, root_poa, scheduler);
FtRtecEventChannelAdmin::EventChannel_var ec_ior =
ec.activate(membership_
@@ -175,7 +115,16 @@ FT_EventService::run(int argc, ACE_TCHAR* argv[])
if (report_factory(orb_.in(), ec_ior.in() )==-1)
return -1;
- orb_->run(ACE_ENV_SINGLE_ARG_PARAMETER);
+ Crash_Injector* injector = Crash_Injector::instance();
+
+ while (injector ==0 || !injector->work_done() ) {
+ if (orb_->work_pending(ACE_ENV_SINGLE_ARG_PARAMETER))
+
+ orb_->perform_work(ACE_ENV_SINGLE_ARG_PARAMETER);
+ }
+
+ orb_->shutdown(0 ACE_ENV_ARG_PARAMETER);
+
ACE_TRY_CHECK;
}
ACE_CATCHANY
@@ -186,7 +135,7 @@ FT_EventService::run(int argc, ACE_TCHAR* argv[])
ACE_ENDTRY;
- ACE_Thread_Manager::instance()->wait();
+// ACE_Thread_Manager::instance()->wait();
return 0;
}
@@ -207,7 +156,7 @@ FT_EventService::parse_args (int argc, ACE_TCHAR* argv [])
}
}
- ACE_Get_Opt get_opt (argc, argv, ACE_LIB_TEXT("d:f:jprs:t:"));
+ ACE_Get_Opt get_opt (argc, argv, ACE_LIB_TEXT("d:jprs:"));
int opt;
while ((opt = get_opt ()) != EOF)
@@ -217,9 +166,6 @@ FT_EventService::parse_args (int argc, ACE_TCHAR* argv [])
case 'd':
TAO_FTRTEC::Log::level(ACE_OS::atoi(get_opt.opt_arg ()));
break;
- case 'f':
- this->fault_no_ = ACE_OS::atoi(get_opt.opt_arg ());
- break;
case 'j':
this->membership_ = TAO_FTEC_Event_Channel::BACKUP;
break;
@@ -251,9 +197,6 @@ FT_EventService::parse_args (int argc, ACE_TCHAR* argv [])
this->global_scheduler_ = 0;
}
break;
- case 't':
- time_to_crash = atoi(get_opt.opt_arg ());
- break;
case '?':
default:
ACE_DEBUG ((LM_DEBUG,
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h
index 17c1063e019..e23d2b44dc6 100644
--- a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h
+++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/FT_EventService.h
@@ -34,7 +34,8 @@ public:
private:
int parse_args (int argc, ACE_TCHAR* argv []);
- RtecScheduler::Scheduler_var
+ RtecScheduler::Scheduler_var
+
setup_scheduler(CosNaming::NamingContext_ptr naming_context
ACE_ENV_ARG_DECL);
@@ -49,7 +50,6 @@ private:
TAO_FTEC_Event_Channel::MEMBERSHIP membership_;
CORBA::ORB_var orb_;
TP_Task task_;
- int fault_no_;
};
#endif
diff --git a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/svc.conf b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/svc.conf
index c6542e265a8..3059293d8a0 100644
--- a/TAO/orbsvcs/FTRT_Event_Service/Event_Service/svc.conf
+++ b/TAO/orbsvcs/FTRT_Event_Service/Event_Service/svc.conf
@@ -20,3 +20,5 @@ static FTRTEC_Replication "$FTEC_REPLICATION_STRATEGY -Threads $FTEC_NUM_THREADS
## for the entire object group.
static FTRTEC_Identification "-Name $FTEC_EVENT_SERVICE_NAME -Object_ID $FTEC_OBJECT_ID"
+
+static Crash_Injector "-type=after_reply -operation=push -num_invocation=4"