summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryfzhang <yfzhang@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-01-24 22:35:47 +0000
committeryfzhang <yfzhang@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2005-01-24 22:35:47 +0000
commit16bac2973dd3d99d98dd33c454dc9228b96f82d7 (patch)
tree76fefc636ec6c6ab0d078238bf747f87e969dc31
parent87fc45f3e91bb600708b1f477bd54919ba702fef (diff)
downloadATCD-16bac2973dd3d99d98dd33c454dc9228b96f82d7.tar.gz
*** empty log message ***
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer.cpp6
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_EC.cpp16
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_Supplier_EC.cpp16
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Kokyu_EC.cpp66
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Kokyu_EC.h32
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier.cpp8
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier_EC.cpp30
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/consumer_enabled.dsui120
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/consumer_supplier_enabled.dsui121
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/federated_kokyu.xml11
-rw-r--r--TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/supplier_enabled.dsui120
11 files changed, 333 insertions, 213 deletions
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer.cpp
index e3b0e50e7af..3e8efdc5f39 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer.cpp
@@ -63,10 +63,12 @@ Consumer::push (const RtecEventComm::EventSet& events
Object_ID oid;
oid.id = events[0].header.eid.id;
- oid.tid = events[0].header.eid.tid;
- oid.pid = events[0].header.eid.pid;
+// oid.tid = events[0].header.eid.tid;
+// oid.pid = events[0].header.eid.pid;
oid.queue_id = events[0].header.eid.queue_id;
oid.type = events[0].header.type;
+ oid.pid = ACE_OS::getpid();
+ oid.tid = ACE_OS::thr_self();
ACE_TIMEPROBE("START_SERVICE");
DSTRM_EVENT (TEST_ONE_FAM, START_SERVICE, 0, sizeof(Object_ID), (char*)&oid);
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_EC.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_EC.cpp
index 378f44f7e42..f1b6526e7bf 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_EC.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_EC.cpp
@@ -168,6 +168,7 @@ int parse_args (int argc, char *argv[]);
int
main (int argc, char* argv[])
{
+ //ACE_LOG_MSG->priority_mask (LM_ERROR | LM_CRITICAL | LM_ALERT | LM_EMERGENCY, ACE_Log_Msg::PROCESS);
//TAO_EC_Default_Factory::init_svcs ();
#ifdef ACE_HAS_DSUI
ds_control ds_cntl("Chain_Test_Consumer","consumer_enabled.dsui");
@@ -207,7 +208,7 @@ main (int argc, char* argv[])
// ****************************************************************
Consumer_EC consumer_ec;
- if (consumer_ec.init(sched_type.c_str(), poa.in()) == -1)
+ if (consumer_ec.init(sched_type.c_str(), poa.in(), orb->orb_core()->reactor()) == -1)
{
ACE_ERROR_RETURN((LM_ERROR, "Unable to initialize Consumer_EC"), 1);
}
@@ -254,14 +255,19 @@ main (int argc, char* argv[])
DSTRM_EVENT (MAIN_GROUP_FAM, WORKER_ACTIVATED, 0, 0, NULL);
//@BT
- // ACE_Object_Counter::object_id oid = ACE_OBJECT_COUNTER->increment();
+ // ACE_Object_Counter::object_id oid = ACE_OBJECT_COUNTER->increment();
// DSTRM_EVENT(MAIN_GROUP_FAM, START, 1, sizeof(EC_Event_Counter::event_id), (char*)&eid);
ACE_Time_Value now(ACE_OS::gettimeofday());
ACE_OS::printf("Consumer_EC START at %isec %iusec\n",now.sec(),now.usec());
- DSTRM_EVENT(MAIN_GROUP_FAM, START, 0, 0, NULL);
+ Object_ID oid;
+ oid.pid = ACE_OS::getpid();
+ oid.tid = ACE_OS::thr_self();
+ DSTRM_EVENT(MAIN_GROUP_FAM, START, 0, sizeof(Object_ID), (char*)&oid);
#endif //ACE_HAS_DSUI
rt.activate(); //need thread creation flags? or priority?
+// DSTRM_EVENT(MAIN_GROUP_FAM, START, 0, sizeof(Object_ID), (char*)&oid);
+
ACE_Time_Value stop_time(310,0);
orb->run (stop_time ACE_ENV_ARG_PARAMETER);
//orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
@@ -271,7 +277,7 @@ main (int argc, char* argv[])
//@BT
//DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
ACE_DEBUG((LM_DEBUG,"Consumer_EC (%P|%t) STOP at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+ DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, sizeof(Object_ID), (char*)&oid);
#endif //ACE_HAS_DSUI
// ****************************************************************
@@ -322,6 +328,6 @@ while ((c = get_opts ()) != -1)
}
// Indicates sucessful parsing of the command line
if (ior_output_file == 0)
- ior_output_file = ACE_OS::fopen ("consumer_ec.ior", "w");
+ ior_output_file = ACE_OS::fopen ("/home/ron/yfzhang/iors/consumer_ec.ior", "w");
return 0;
}
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_Supplier_EC.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_Supplier_EC.cpp
index fb49ae3269e..b0959a351bc 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_Supplier_EC.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Consumer_Supplier_EC.cpp
@@ -150,6 +150,7 @@ int parse_args (int argc, char *argv[]);
int
main (int argc, char* argv[])
{
+ //ACE_LOG_MSG->priority_mask (LM_ERROR | LM_CRITICAL | LM_ALERT | LM_EMERGENCY, ACE_Log_Msg::PROCESS);
//TAO_EC_Default_Factory::init_svcs ();
#ifdef ACE_HAS_DSUI
ds_control ds_cntl("Chain_Test_Consumer_Supplier","consumer_supplier_enabled.dsui");
@@ -194,14 +195,14 @@ main (int argc, char* argv[])
// ****************************************************************
Consumer_Supplier_EC supplier_ec;
- if (supplier_ec.init(sched_type.c_str(), poa.in()) == -1)
+ if (supplier_ec.init(sched_type.c_str(), poa.in(), orb->orb_core()->reactor()) == -1)
{
ACE_ERROR_RETURN((LM_ERROR, "Unable to initialize Kokyu_EC"), 1);
}
supplier_ec.init_gateway(orb.in(),
poa.in(),
- "file://consumer_ec.ior" ACE_ENV_ARG_PARAMETER);
+ "file:///home/ron/yfzhang/iors/consumer_ec.ior" ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
// ****************************************************************
RtEventChannelAdmin::RtSchedEventChannel_var supplier_ec_ior =
@@ -239,10 +240,15 @@ main (int argc, char* argv[])
//DSTRM_EVENT(MAIN_GROUP_FAM, START,1,0,NULL);
ACE_Time_Value now(ACE_OS::gettimeofday());
ACE_OS::printf("Consumer_Supplier_EC START at %isec %iusec\n",now.sec(),now.usec());
- DSTRM_EVENT(MAIN_GROUP_FAM, START,0,0,NULL);
+ Object_ID oid;
+ oid.pid = ACE_OS::getpid();
+ oid.tid = ACE_OS::thr_self();
+ DSTRM_EVENT(MAIN_GROUP_FAM, START,0,sizeof(Object_ID), (char*)&oid);
#endif //ACE_HAS_DSUI
rt.activate(); //need thread creation flags? or priority?
+// DSTRM_EVENT(MAIN_GROUP_FAM, START,0,sizeof(Object_ID), (char*)&oid);
+
ACE_Time_Value stop_time(305,0);
orb->run (stop_time ACE_ENV_ARG_PARAMETER);
//orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
@@ -252,7 +258,7 @@ main (int argc, char* argv[])
//@BT
//DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
ACE_DEBUG((LM_DEBUG,"Consumer_Supplier_EC (%P|%t) STOP at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+ DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, sizeof(Object_ID), (char*)&oid);
#endif //ACE_HAS_DSUI
// ****************************************************************
@@ -302,7 +308,7 @@ int parse_args (int argc, char *argv[])
-1);
}
if (ior_output_file == 0)
- ior_output_file = ACE_OS::fopen ("consumer_supplier_ec.ior", "w");
+ ior_output_file = ACE_OS::fopen ("/home/ron/yfzhang/iors/consumer_supplier_ec.ior", "w");
// Indicates sucessful parsing of the command line
return 0;
}
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Kokyu_EC.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Kokyu_EC.cpp
index c3a2067fc41..b82416918fb 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Kokyu_EC.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Kokyu_EC.cpp
@@ -65,21 +65,35 @@ Kokyu_EC::~Kokyu_EC(void)
suppliers_[i]->disconnect_push_supplier();
delete suppliers_[i];
}
+/*
for(size_t i=0; i<timeout_consumers_.size(); ++i) {
timeout_consumers_[i]->disconnect_push_consumer();
delete timeout_consumers_[i];
}
+*/
for(size_t i=0; i<consumers_.size(); ++i) {
consumers_[i]->disconnect_push_consumer();
delete consumers_[i];
}
+ if (this->reactor_ != 0)
+ {
+ for(size_t i=0; i<timer_handles_.size(); ++i) {
+ this->reactor_->cancel_timer(timer_handles_[i]);
+ }
+ this->timer_handles_.clear();
+ for(size_t i=0; i<task_triggers_.size(); ++i) {
+ delete this->task_triggers_[i].handler;
+ }
+ this->task_triggers_.clear();
+ }
+
this->ec_impl_->destroy();
}
int
-Kokyu_EC::init(const char* schedule_discipline, PortableServer::POA_ptr poa)
+Kokyu_EC::init(const char* schedule_discipline, PortableServer::POA_ptr poa, ACE_Reactor * reactor)
{
ACE_TRY_NEW_ENV {
@@ -99,6 +113,7 @@ Kokyu_EC::init(const char* schedule_discipline, PortableServer::POA_ptr poa)
ACE_TRY_CHECK;
supplier_admin_ = ec_impl_->for_suppliers(ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
+ this->reactor_ = reactor;
}
ACE_CATCHALL {
return -1;
@@ -252,6 +267,20 @@ Kokyu_EC::start (ACE_ENV_SINGLE_ARG_DECL)
ec_impl_->activate (ACE_ENV_SINGLE_ARG_PARAMETER);
ACE_TRY_CHECK;
+ for(size_t i=0; i<this->task_triggers_.size(); ++i)
+ {
+ if (this->reactor_ != 0)
+ {
+ long timer_handle = this->reactor_->schedule_timer(this->task_triggers_[i].handler,
+ 0, //arg
+ this->task_triggers_[i].phase, //delay
+ this->task_triggers_[i].period //period
+ );
+ this->timer_handles_.push_back(timer_handle);
+ ACE_DEBUG((LM_DEBUG,"Kokyu_EC (%P|%t) scheduled timeout %d with delay %isec %iusec\n",timer_handle,this->task_triggers_[i].phase.sec(),this->task_triggers_[i].phase.usec()));
+ }
+ }
+
//@BT: EC activated is roughly equivalent to having the DT scheduler ready to run
//DSTRM_EVENT (MAIN_GROUP_FAM, SCHEDULER_STARTED, 1, 0, NULL);
ACE_DEBUG((LM_DEBUG,"Kokyu_EC thread %t SCHEDULER_STARTED at %u\n",ACE_OS::gettimeofday().msec()));
@@ -277,8 +306,7 @@ Kokyu_EC::add_supplier_with_timeout(
Supplier * supplier_impl,
const char * supp_entry_point,
RtecEventComm::EventType supp_type,
- Timeout_Consumer * timeout_consumer_impl,
- const char * timeout_entry_point,
+ Supplier_Timeout_Handler * timeout_handler_impl,
ACE_Time_Value period,
RtecScheduler::Criticality_t crit,
RtecScheduler::Importance_t imp
@@ -293,11 +321,38 @@ Kokyu_EC::add_supplier_with_timeout(
{
add_supplier(supplier_impl,supp_entry_point,supp_type ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
- add_timeout_consumer(supplier_impl,timeout_consumer_impl,timeout_entry_point,period,crit,imp ACE_ENV_ARG_PARAMETER);
+// add_timeout_consumer(supplier_impl,timeout_consumer_impl,timeout_entry_point,period,crit,imp ACE_ENV_ARG_PARAMETER);
+// ACE_CHECK;
+ RtecScheduler::Time period_timeT;
+ ORBSVCS_Time::Time_Value_to_TimeT (period_timeT,period);
+
+ scheduler_impl_->set (supplier_impl->rt_info(),
+ crit,
+ 0,
+ 0,
+ 0,
+ period_timeT,
+ imp,
+ 0,
+ 0,
+ RtecScheduler::OPERATION
+ ACE_ENV_ARG_PARAMETER);
ACE_CHECK;
+
+// add_supplier(supplier_impl,supp_entry_point,supp_type ACE_ENV_ARG_PARAMETER);
+// ACE_CHECK;
+
+ //We can't schedule the timer here because we want the phase to be from when the reactor loop starts, not now!
+ ACE_Time_Value phase(0,0);
+ task_trigger_t trigger;
+ trigger.handler = timeout_handler_impl;
+ trigger.period = period;
+ trigger.phase = phase;
+ this->task_triggers_.push_back(trigger);
}
///Takes ownership of Timeout_Consumer
+/*
void
Kokyu_EC::add_timeout_consumer(
Supplier * supplier_impl,
@@ -347,6 +402,7 @@ Kokyu_EC::add_timeout_consumer(
this->timeout_consumers_.push_back(timeout_consumer_impl);
} //add_supplier_with_timeout()
+*/
///Takes ownership of Supplier
void
@@ -516,7 +572,7 @@ Reactor_Task::reactor(void)
int
Reactor_Task::svc (void)
{
- ACE_DEBUG((LM_DEBUG,"Reactor_Task (%P|%t) svc(): ENTER\n"));
+ ACE_OS::printf("Reactor_Task %d svc(): ENTER\n",ACE_OS::getpid());
if (!this->initialized_)
{
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Kokyu_EC.h b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Kokyu_EC.h
index ccf0c13cf8e..09bdc0b4c4c 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Kokyu_EC.h
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Kokyu_EC.h
@@ -14,6 +14,22 @@
#include "tao/Utils/Servant_Var.h"
#include "orbsvcs/Event/EC_Event_Channel.h"
+struct subtask_t
+{
+ int task_index;
+ int subtask_index;
+ ACE_Time_Value exec;
+ ACE_Time_Value period;
+ ACE_Time_Value phase;
+}; //struct subtask_t
+
+struct task_trigger_t
+{
+ Supplier_Timeout_Handler *handler;
+ ACE_Time_Value period;
+ ACE_Time_Value phase;
+}; //struct task_trigger_t
+
class Kokyu_EC : public POA_RtEventChannelAdmin::RtSchedEventChannel
{
public:
@@ -27,7 +43,7 @@ public:
return (tv.sec () * 1000000 + tv.usec ())*10;
}
- int init(const char* schedule_discipline, PortableServer::POA_ptr poa);
+ int init(const char* schedule_discipline, PortableServer::POA_ptr poa, ACE_Reactor * reactor = 0);
virtual RtEventChannelAdmin::handle_t register_consumer (
const char * entry_point,
@@ -92,8 +108,7 @@ public:
Supplier * supplier_impl,
const char * supp_entry_point,
RtecEventComm::EventType supp_type,
- Timeout_Consumer * timeout_consumer_impl,
- const char * timeout_entry_point,
+ Supplier_Timeout_Handler * timeout_handler_impl,
ACE_Time_Value period,
RtecScheduler::Criticality_t crit,
RtecScheduler::Importance_t imp
@@ -107,6 +122,8 @@ public:
));
///Takes ownership of Timeout_Consumer
+
+/*
void add_timeout_consumer(
Supplier * supplier_impl,
Timeout_Consumer * timeout_consumer_impl,
@@ -122,7 +139,7 @@ public:
, RtecScheduler::INTERNAL
, RtecScheduler::SYNCHRONIZATION_FAILURE
));
-
+*/
///Takes ownership of Supplier
void add_supplier(
Supplier * supplier_impl,
@@ -181,8 +198,13 @@ private:
RtecEventChannelAdmin::SupplierAdmin_var supplier_admin_;
RtecScheduler::Scheduler_var scheduler_;
+ ACE_Vector<task_trigger_t> task_triggers_; //also keeps track of timeout_handlers
+
+ ACE_Reactor *reactor_;
+ ACE_Vector<long> timer_handles_;
+
ACE_Vector<Supplier*> suppliers_;
- ACE_Vector<Timeout_Consumer*> timeout_consumers_;
+// ACE_Vector<Timeout_Consumer*> timeout_consumers_;
ACE_Vector<Consumer*> consumers_;
}; //class Kokyu_EC
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier.cpp
index 09f0ccc436d..b4076fe0e08 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier.cpp
@@ -53,7 +53,11 @@ Supplier::timeout_occured (Object_ID oid ACE_ENV_ARG_DECL)
event[0].header.eid.tid = oid.tid;
event[0].header.eid.pid = oid.pid;
event[0].header.eid.queue_id = oid.queue_id;
+ event[0].header.eid.gateway_id = 0;
oid.type = event[0].header.type;
+ oid.pid = ACE_OS::getpid();
+ oid.tid = ACE_OS::thr_self();
+
//@BT INSTRUMENT with event ID: EVENT_PUSH Measure time
//when event is pushed by client.
@@ -110,7 +114,7 @@ Timeout_Consumer::push (const RtecEventComm::EventSet& events
Object_ID oid = ACE_OBJECT_COUNTER->increment();
- DSTRM_EVENT (WORKER_GROUP_FAM, BEGIN_SCHED_SEGMENT, 0, sizeof(Object_ID), (char*)&oid);
+// DSTRM_EVENT (WORKER_GROUP_FAM, BEGIN_SCHED_SEGMENT, 0, sizeof(Object_ID), (char*)&oid);
supplier_impl_->timeout_occured (oid ACE_ENV_ARG_PARAMETER);
@@ -118,7 +122,7 @@ Timeout_Consumer::push (const RtecEventComm::EventSet& events
//DSTRM_EVENT (WORKER_GROUP_FAM, END_SCHED_SEGMENT, 1, 0, NULL);
ACE_DEBUG((LM_DEBUG,"Timeout_Consumer (for Supplier id %d) in thread %t END_SCHED_SEGMENT (timeout occurred) at %u\n",
this->supplier_impl_->get_id(),ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT (WORKER_GROUP_FAM, END_SCHED_SEGMENT, 0, sizeof(Object_ID), (char*)&oid);
+// DSTRM_EVENT (WORKER_GROUP_FAM, END_SCHED_SEGMENT, 0, sizeof(Object_ID), (char*)&oid);
}
void
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier_EC.cpp b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier_EC.cpp
index 17c7b24967c..aa099af3479 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier_EC.cpp
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/Supplier_EC.cpp
@@ -6,12 +6,14 @@
#include "ace/Thread.h"
#include "ace/OS_NS_sys_time.h"
#include "ace/Select_Reactor_Base.h" //for ACE_Select_Reactor_Impl::DEFAULT_SIZE
+#include <ace/Counter.h>
#include "orbsvcs/Event/EC_Gateway_IIOP_Factory.h"
#include "orbsvcs/Event/EC_Gateway_Sched.h"
#include "orbsvcs/Event/EC_Kokyu_Factory.h"
#include "orbsvcs/Time_Utilities.h"
#include "orbsvcs/Event_Service_Constants.h"
+#include "tao/ORB_Core.h"
#include "Kokyu_EC.h"
#include "Consumer.h"
@@ -111,17 +113,18 @@ public:
))
{
Supplier *supplier_impl1_1;
- Timeout_Consumer *timeout_consumer_impl1_1;
ACE_NEW(supplier_impl1_1,
Supplier(1));
- ACE_NEW(timeout_consumer_impl1_1,
- Timeout_Consumer(supplier_impl1_1));
+
+ Supplier_Timeout_Handler *timeout_handler_impl1_1;
+ ACE_NEW(timeout_handler_impl1_1,
+ Supplier_Timeout_Handler(supplier_impl1_1));
+
ACE_Time_Value tv(0,200000); //period
add_supplier_with_timeout(supplier_impl1_1,
"supplier1_1",
ACE_ES_EVENT_UNDEFINED,
- timeout_consumer_impl1_1,
- "supplier1_1_timeout_consumer",
+ timeout_handler_impl1_1,
tv,
RtecScheduler::VERY_LOW_CRITICALITY,
RtecScheduler::VERY_LOW_IMPORTANCE
@@ -164,6 +167,7 @@ int parse_args (int argc, char *argv[]);
int
main (int argc, char* argv[])
{
+ //ACE_LOG_MSG->priority_mask (LM_ERROR | LM_CRITICAL | LM_ALERT | LM_EMERGENCY, ACE_Log_Msg::PROCESS);
//TAO_EC_Default_Factory::init_svcs ();
TAO_EC_Kokyu_Factory::init_svcs ();
TAO_EC_Gateway_IIOP_Factory::init_svcs ();
@@ -204,14 +208,14 @@ main (int argc, char* argv[])
// ****************************************************************
Supplier_EC supplier_ec;
- if (supplier_ec.init(sched_type.c_str(), poa.in()) == -1)
+ if (supplier_ec.init(sched_type.c_str(), poa.in(), orb->orb_core()->reactor()) == -1)
{
ACE_ERROR_RETURN((LM_ERROR, "Unable to initialize Kokyu_EC"), 1);
}
supplier_ec.init_gateway(orb.in(),
poa.in(),
- "file://consumer_supplier_ec.ior" ACE_ENV_ARG_PARAMETER);
+ "file:///home/ron/yfzhang/iors/consumer_supplier_ec.ior" ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
// ****************************************************************
@@ -248,11 +252,16 @@ main (int argc, char* argv[])
//DSTRM_EVENT(MAIN_GROUP_FAM, START,1,0,NULL);
ACE_Time_Value now(ACE_OS::gettimeofday());
ACE_OS::printf("Consumer_Supplier_EC START at %isec %iusec\n",now.sec(),now.usec());
- DSTRM_EVENT(MAIN_GROUP_FAM, START,0,0,NULL);
+ Object_ID oid;
+ oid.pid = ACE_OS::getpid();
+ oid.tid = ACE_OS::thr_self();
+
+ DSTRM_EVENT(MAIN_GROUP_FAM, START,0,sizeof(Object_ID), (char*)&oid);
#endif //ACE_HAS_DSUI
rt.activate(); //need thread creation flags? or priority?
- //ACE_Time_Value stop_time(10,0);
+
+// DSTRM_EVENT(MAIN_GROUP_FAM, START,0,sizeof(Object_ID), (char*)&oid);
ACE_Time_Value stop_time(300,0);
orb->run (stop_time ACE_ENV_ARG_PARAMETER);
//orb->run (ACE_ENV_SINGLE_ARG_PARAMETER);
@@ -262,7 +271,8 @@ main (int argc, char* argv[])
//@BT
//DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
ACE_DEBUG((LM_DEBUG,"Supplier_EC (%P|%t) STOP at %u\n",ACE_OS::gettimeofday().msec()));
- DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, 0, NULL);
+
+ DSTRM_EVENT(MAIN_GROUP_FAM, STOP, 1, sizeof(Object_ID), (char*)&oid);
#endif //ACE_HAS_DSUI
// ****************************************************************
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/consumer_enabled.dsui b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/consumer_enabled.dsui
index 666b18226be..beb5758062b 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/consumer_enabled.dsui
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/consumer_enabled.dsui
@@ -6,75 +6,79 @@
# Entity type Family Name Fam ID Entity Name
DSTRM_EVENT TEST_ONE 1 START_SERVICE 0
-DSTRM_EVENT TEST_ONE 1 DEADLINE_MISSED 1
+#DSTRM_EVENT TEST_ONE 1 DEADLINE_MISSED 1
DSTRM_EVENT TEST_ONE 1 STOP_SERVICE 2
DSTRM_EVENT MAIN_GROUP 2 START 0
-DSTRM_EVENT MAIN_GROUP 2 SCHEDULE_SETUP 1
-DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_STARTED 2
-DSTRM_EVENT MAIN_GROUP 2 CALL_SERVER_SHUTDOWN 3
-DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_SHUTDOWN 4
-DSTRM_EVENT MAIN_GROUP 2 AFTER_SERVER_SHUTDOWN 5
+#DSTRM_EVENT MAIN_GROUP 2 SCHEDULE_SETUP 1
+#DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_STARTED 2
+#DSTRM_EVENT MAIN_GROUP 2 CALL_SERVER_SHUTDOWN 3
+#DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_SHUTDOWN 4
+#DSTRM_EVENT MAIN_GROUP 2 AFTER_SERVER_SHUTDOWN 5
DSTRM_EVENT MAIN_GROUP 2 STOP 6
-DSTRM_EVENT MAIN_GROUP 2 WORKER_ACTIVATED 7
+#DSTRM_EVENT MAIN_GROUP 2 WORKER_ACTIVATED 7
-DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_START 0
-DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_DONE 1
-DSTRM_EVENT WORKER_GROUP 3 BEGIN_SCHED_SEGMENT 2
-DSTRM_EVENT WORKER_GROUP 3 END_SCHED_SEGMENT 3
-DSTRM_EVENT WORKER_GROUP 3 WORKER_STARTED 4
+#DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_START 0
+#DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_DONE 1
+#DSTRM_EVENT WORKER_GROUP 3 BEGIN_SCHED_SEGMENT 2
+#DSTRM_EVENT WORKER_GROUP 3 END_SCHED_SEGMENT 3
+#DSTRM_EVENT WORKER_GROUP 3 WORKER_STARTED 4
-DSTRM_EVENT DSRT_DISPATCH 4 SCHEDULE 0
-DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_START 1
-DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_END 2
+#DSTRM_EVENT DSRT_DISPATCH 4 SCHEDULE 0
+#DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_START 1
+#DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_END 2
-DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_ENTER 0
-DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_EXIT 1
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_EVENT_RELEASED 2
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_DELAYED_EVENT_RELEASED 3
-DSTRM_EVENT DSRT_CV_DISPATCH 5 NONRG_EVENT_RELEASED 4
-DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT_I 5
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_START 6
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_END 7
-DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_START 8
-DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_END 9
-DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_START 10
-DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_END 11
-DSTRM_EVENT DSRT_CV_DISPATCH 5 SHUTDOWN 12
-DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT 13
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_ENTER 0
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_EXIT 1
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_EVENT_RELEASED 2
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_DELAYED_EVENT_RELEASED 3
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 NONRG_EVENT_RELEASED 4
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT_I 5
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_START 6
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_END 7
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_START 8
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_END 9
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_START 10
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_END 11
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 SHUTDOWN 12
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT 13
-DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_ENTER 0
-DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_EXIT 1
+#DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_ENTER 0
+#DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_EXIT 1
-DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_ENQUEUE 0
-DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_DEQUEUE 1
+#DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_ENQUEUE 0
+#DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_DEQUEUE 1
-DSTRM_EVENT DISP_TASK 8 EVENT_DEQUEUED 0
-DSTRM_EVENT DISP_TASK 8 EVENT_START_DISPATCHING 1
-DSTRM_EVENT DISP_TASK 8 EVENT_FINISHED_DISPATCHING 2
-DSTRM_EVENT DISP_TASK 8 EVENT_DEFERRED 3
+#DSTRM_EVENT DISP_TASK 8 EVENT_DEQUEUED 0
+#DSTRM_EVENT DISP_TASK 8 EVENT_START_DISPATCHING 1
+#DSTRM_EVENT DISP_TASK 8 END_DISPATCH_THE_EVENT 4
+#DSTRM_EVENT DISP_TASK 8 EVENT_FINISHED_DISPATCHING 2
+#DSTRM_EVENT DISP_TASK 8 EVENT_DEFERRED 3
+#DSTRM_EVENT DISP_TASK 8 EVENT_NON_DEFERRED 5
-DSTRM_EVENT DSRT_DISPATCH_IMPL 9 INIT2 0
+#DSTRM_EVENT DSRT_DISPATCH_IMPL 9 INIT2 0
-DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD_LOCK_ACQUIRE 12
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD_LOCK_ACQUIRE 11
-DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL_LOCK_ACQUIRE 10
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL_LOCK_ACQUIRE 9
-DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD 8
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD 7
-DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL 6
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL 5
-DSTRM_EVENT MSG_QUEUE 10 AFTER_PUTQ_CALL 4
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_PUTQ_CALL 3
-DSTRM_EVENT MSG_QUEUE 10 AFTER_GETQ_CALL 2
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_GETQ_CALL 1
-DSTRM_EVENT MSG_QUEUE 10 QUEUE_LEVEL 0
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD_LOCK_ACQUIRE 12
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD_LOCK_ACQUIRE 11
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL_LOCK_ACQUIRE 10
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL_LOCK_ACQUIRE 9
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD 8
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD 7
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL 6
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL 5
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_PUTQ_CALL 4
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_PUTQ_CALL 3
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_GETQ_CALL 2
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_GETQ_CALL 1
+#DSTRM_EVENT MSG_QUEUE 10 QUEUE_LEVEL 0
-DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_CONSUMER 0
-DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_SUPPLIER 1
-DSTRM_EVENT EC2_GROUP 11 DISPATCH_THE_EVENT 2
-DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_BEGIN 3
-DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_END 4
-DSTRM_EVENT EC2_GROUP 11 ENTER_TIMEOUT_GENERATOR 5
+#DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_CONSUMER 0
+#DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_SUPPLIER 1
+#DSTRM_EVENT EC2_GROUP 11 START_SCHEDULING 6
+#DSTRM_EVENT EC2_GROUP 11 END_SCHEDULING 7
+#DSTRM_EVENT EC2_GROUP 11 DISPATCH_THE_EVENT 2
+#DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_BEGIN 3
+#DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_END 4
+#DSTRM_EVENT EC2_GROUP 11 ENTER_TIMEOUT_GENERATOR 5
-DSTRM_EVENT TIMEOUT 12 TIMEOUT_EVENT 0
+#DSTRM_EVENT TIMEOUT 12 TIMEOUT_EVENT 0
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/consumer_supplier_enabled.dsui b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/consumer_supplier_enabled.dsui
index 666b18226be..5834d64b25b 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/consumer_supplier_enabled.dsui
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/consumer_supplier_enabled.dsui
@@ -6,75 +6,80 @@
# Entity type Family Name Fam ID Entity Name
DSTRM_EVENT TEST_ONE 1 START_SERVICE 0
-DSTRM_EVENT TEST_ONE 1 DEADLINE_MISSED 1
+#DSTRM_EVENT TEST_ONE 1 DEADLINE_MISSED 1
DSTRM_EVENT TEST_ONE 1 STOP_SERVICE 2
DSTRM_EVENT MAIN_GROUP 2 START 0
-DSTRM_EVENT MAIN_GROUP 2 SCHEDULE_SETUP 1
-DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_STARTED 2
-DSTRM_EVENT MAIN_GROUP 2 CALL_SERVER_SHUTDOWN 3
-DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_SHUTDOWN 4
-DSTRM_EVENT MAIN_GROUP 2 AFTER_SERVER_SHUTDOWN 5
+#DSTRM_EVENT MAIN_GROUP 2 SCHEDULE_SETUP 1
+#DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_STARTED 2
+#DSTRM_EVENT MAIN_GROUP 2 CALL_SERVER_SHUTDOWN 3
+#DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_SHUTDOWN 4
+#DSTRM_EVENT MAIN_GROUP 2 AFTER_SERVER_SHUTDOWN 5
DSTRM_EVENT MAIN_GROUP 2 STOP 6
-DSTRM_EVENT MAIN_GROUP 2 WORKER_ACTIVATED 7
+#DSTRM_EVENT MAIN_GROUP 2 WORKER_ACTIVATED 7
-DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_START 0
-DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_DONE 1
-DSTRM_EVENT WORKER_GROUP 3 BEGIN_SCHED_SEGMENT 2
-DSTRM_EVENT WORKER_GROUP 3 END_SCHED_SEGMENT 3
-DSTRM_EVENT WORKER_GROUP 3 WORKER_STARTED 4
+#DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_START 0
+#DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_DONE 1
+#DSTRM_EVENT WORKER_GROUP 3 BEGIN_SCHED_SEGMENT 2
+#DSTRM_EVENT WORKER_GROUP 3 END_SCHED_SEGMENT 3
+#DSTRM_EVENT WORKER_GROUP 3 WORKER_STARTED 4
-DSTRM_EVENT DSRT_DISPATCH 4 SCHEDULE 0
-DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_START 1
-DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_END 2
+#DSTRM_EVENT DSRT_DISPATCH 4 SCHEDULE 0
+#DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_START 1
+#DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_END 2
-DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_ENTER 0
-DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_EXIT 1
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_EVENT_RELEASED 2
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_DELAYED_EVENT_RELEASED 3
-DSTRM_EVENT DSRT_CV_DISPATCH 5 NONRG_EVENT_RELEASED 4
-DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT_I 5
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_START 6
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_END 7
-DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_START 8
-DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_END 9
-DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_START 10
-DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_END 11
-DSTRM_EVENT DSRT_CV_DISPATCH 5 SHUTDOWN 12
-DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT 13
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_ENTER 0
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_EXIT 1
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_EVENT_RELEASED 2
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_DELAYED_EVENT_RELEASED 3
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 NONRG_EVENT_RELEASED 4
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT_I 5
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_START 6
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_END 7
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_START 8
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_END 9
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_START 10
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_END 11
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 SHUTDOWN 12
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT 13
-DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_ENTER 0
-DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_EXIT 1
+#DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_ENTER 0
+#DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_EXIT 1
-DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_ENQUEUE 0
-DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_DEQUEUE 1
+#DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_ENQUEUE 0
+#DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_DEQUEUE 1
-DSTRM_EVENT DISP_TASK 8 EVENT_DEQUEUED 0
-DSTRM_EVENT DISP_TASK 8 EVENT_START_DISPATCHING 1
-DSTRM_EVENT DISP_TASK 8 EVENT_FINISHED_DISPATCHING 2
-DSTRM_EVENT DISP_TASK 8 EVENT_DEFERRED 3
+#DSTRM_EVENT DISP_TASK 8 EVENT_DEQUEUED 0
+#DSTRM_EVENT DISP_TASK 8 EVENT_START_DISPATCHING 1
+#DSTRM_EVENT DISP_TASK 8 END_DISPATCH_THE_EVENT 4
+#DSTRM_EVENT DISP_TASK 8 EVENT_FINISHED_DISPATCHING 2
+#DSTRM_EVENT DISP_TASK 8 EVENT_DEFERRED 3
+#DSTRM_EVENT DISP_TASK 8 EVENT_NON_DEFERRED 5
-DSTRM_EVENT DSRT_DISPATCH_IMPL 9 INIT2 0
+#DSTRM_EVENT DSRT_DISPATCH_IMPL 9 INIT2 0
-DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD_LOCK_ACQUIRE 12
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD_LOCK_ACQUIRE 11
-DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL_LOCK_ACQUIRE 10
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL_LOCK_ACQUIRE 9
-DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD 8
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD 7
-DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL 6
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL 5
-DSTRM_EVENT MSG_QUEUE 10 AFTER_PUTQ_CALL 4
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_PUTQ_CALL 3
-DSTRM_EVENT MSG_QUEUE 10 AFTER_GETQ_CALL 2
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_GETQ_CALL 1
-DSTRM_EVENT MSG_QUEUE 10 QUEUE_LEVEL 0
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD_LOCK_ACQUIRE 12
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD_LOCK_ACQUIRE 11
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL_LOCK_ACQUIRE 10
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL_LOCK_ACQUIRE 9
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD 8
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD 7
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL 6
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL 5
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_PUTQ_CALL 4
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_PUTQ_CALL 3
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_GETQ_CALL 2
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_GETQ_CALL 1
+#DSTRM_EVENT MSG_QUEUE 10 QUEUE_LEVEL 0
-DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_CONSUMER 0
-DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_SUPPLIER 1
-DSTRM_EVENT EC2_GROUP 11 DISPATCH_THE_EVENT 2
-DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_BEGIN 3
-DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_END 4
-DSTRM_EVENT EC2_GROUP 11 ENTER_TIMEOUT_GENERATOR 5
+#DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_CONSUMER 0
+#DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_SUPPLIER 1
+#DSTRM_EVENT EC2_GROUP 11 START_SCHEDULING 6
+#DSTRM_EVENT EC2_GROUP 11 END_SCHEDULING 7
+#DSTRM_EVENT EC2_GROUP 11 DISPATCH_THE_EVENT 2
+#DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_BEGIN 3
+#DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_END 4
+#DSTRM_EVENT EC2_GROUP 11 ENTER_TIMEOUT_GENERATOR 5
+#DSTRM_EVENT EC2_GROUP 11 END_PROXY_PUSH_CONSUMER 8
-DSTRM_EVENT TIMEOUT 12 TIMEOUT_EVENT 0
+#DSTRM_EVENT TIMEOUT 12 TIMEOUT_EVENT 0
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/federated_kokyu.xml b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/federated_kokyu.xml
index 958d3586ec6..b3f39ffacfb 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/federated_kokyu.xml
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/federated_kokyu.xml
@@ -15,12 +15,13 @@
<EVENT name="AFTER_SERVER_SHUTDOWN" id="5" />
<EVENT name="STOP" id="6" />
<EVENT name="WORKER_ACTIVATED" id="7" />
+ <EVENT name="ACTUAL START" id="8" />
</FAMILY>
<FAMILY name="WORKER_GROUP" id="3">
- <EVENT name="ONEWAY_CALL_DONE" id="0" />
- <EVENT name="ONEWAY_CALL_STOP" id="1" />
- <EVENT name="END_SCHED_SEGMENT" id="2" />
- <EVENT name="BEGIN_SCHED_SEGMENT" id="3" />
+ <EVENT name="ONEWAY_CALL_START" id="0" />
+ <EVENT name="ONEWAY_CALL_DONE" id="1" />
+ <EVENT name="BEGIN_SCHED_SEGMENT" id="2" />
+ <EVENT name="END_SCHED_SEGMENT" id="3" />
<EVENT name="WORKER_STARTED" id="4" />
</FAMILY>
-</NAMESPACE> \ No newline at end of file
+</NAMESPACE>
diff --git a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/supplier_enabled.dsui b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/supplier_enabled.dsui
index 666b18226be..beb5758062b 100644
--- a/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/supplier_enabled.dsui
+++ b/TAO/orbsvcs/examples/RtEC/Federated_Kokyu/chain_test/supplier_enabled.dsui
@@ -6,75 +6,79 @@
# Entity type Family Name Fam ID Entity Name
DSTRM_EVENT TEST_ONE 1 START_SERVICE 0
-DSTRM_EVENT TEST_ONE 1 DEADLINE_MISSED 1
+#DSTRM_EVENT TEST_ONE 1 DEADLINE_MISSED 1
DSTRM_EVENT TEST_ONE 1 STOP_SERVICE 2
DSTRM_EVENT MAIN_GROUP 2 START 0
-DSTRM_EVENT MAIN_GROUP 2 SCHEDULE_SETUP 1
-DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_STARTED 2
-DSTRM_EVENT MAIN_GROUP 2 CALL_SERVER_SHUTDOWN 3
-DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_SHUTDOWN 4
-DSTRM_EVENT MAIN_GROUP 2 AFTER_SERVER_SHUTDOWN 5
+#DSTRM_EVENT MAIN_GROUP 2 SCHEDULE_SETUP 1
+#DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_STARTED 2
+#DSTRM_EVENT MAIN_GROUP 2 CALL_SERVER_SHUTDOWN 3
+#DSTRM_EVENT MAIN_GROUP 2 SCHEDULER_SHUTDOWN 4
+#DSTRM_EVENT MAIN_GROUP 2 AFTER_SERVER_SHUTDOWN 5
DSTRM_EVENT MAIN_GROUP 2 STOP 6
-DSTRM_EVENT MAIN_GROUP 2 WORKER_ACTIVATED 7
+#DSTRM_EVENT MAIN_GROUP 2 WORKER_ACTIVATED 7
-DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_START 0
-DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_DONE 1
-DSTRM_EVENT WORKER_GROUP 3 BEGIN_SCHED_SEGMENT 2
-DSTRM_EVENT WORKER_GROUP 3 END_SCHED_SEGMENT 3
-DSTRM_EVENT WORKER_GROUP 3 WORKER_STARTED 4
+#DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_START 0
+#DSTRM_EVENT WORKER_GROUP 3 ONE_WAY_CALL_DONE 1
+#DSTRM_EVENT WORKER_GROUP 3 BEGIN_SCHED_SEGMENT 2
+#DSTRM_EVENT WORKER_GROUP 3 END_SCHED_SEGMENT 3
+#DSTRM_EVENT WORKER_GROUP 3 WORKER_STARTED 4
-DSTRM_EVENT DSRT_DISPATCH 4 SCHEDULE 0
-DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_START 1
-DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_END 2
+#DSTRM_EVENT DSRT_DISPATCH 4 SCHEDULE 0
+#DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_START 1
+#DSTRM_EVENT DSRT_DISPATCH 4 CREATE_DSRT_DISPATCH_SCHED_END 2
-DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_ENTER 0
-DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_EXIT 1
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_EVENT_RELEASED 2
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_DELAYED_EVENT_RELEASED 3
-DSTRM_EVENT DSRT_CV_DISPATCH 5 NONRG_EVENT_RELEASED 4
-DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT_I 5
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_START 6
-DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_END 7
-DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_START 8
-DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_END 9
-DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_START 10
-DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_END 11
-DSTRM_EVENT DSRT_CV_DISPATCH 5 SHUTDOWN 12
-DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT 13
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_ENTER 0
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 SCHEDULE_EXIT 1
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_EVENT_RELEASED 2
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RG_DELAYED_EVENT_RELEASED 3
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 NONRG_EVENT_RELEASED 4
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT_I 5
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_START 6
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 RELEASE_GUARD_END 7
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_START 8
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 UPDATE_SCHEDULE_END 9
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_START 10
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 CANCEL_SCHEDULE_END 11
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 SHUTDOWN 12
+#DSTRM_EVENT DSRT_CV_DISPATCH 5 INIT 13
-DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_ENTER 0
-DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_EXIT 1
+#DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_ENTER 0
+#DSTRM_EVENT DSRT_DIRECT_DISPATCH 6 SCHEDULE_EXIT 1
-DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_ENQUEUE 0
-DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_DEQUEUE 1
+#DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_ENQUEUE 0
+#DSTRM_EVENT DISP_DEFERRER 7 EVENT_DEFERRED_DEQUEUE 1
-DSTRM_EVENT DISP_TASK 8 EVENT_DEQUEUED 0
-DSTRM_EVENT DISP_TASK 8 EVENT_START_DISPATCHING 1
-DSTRM_EVENT DISP_TASK 8 EVENT_FINISHED_DISPATCHING 2
-DSTRM_EVENT DISP_TASK 8 EVENT_DEFERRED 3
+#DSTRM_EVENT DISP_TASK 8 EVENT_DEQUEUED 0
+#DSTRM_EVENT DISP_TASK 8 EVENT_START_DISPATCHING 1
+#DSTRM_EVENT DISP_TASK 8 END_DISPATCH_THE_EVENT 4
+#DSTRM_EVENT DISP_TASK 8 EVENT_FINISHED_DISPATCHING 2
+#DSTRM_EVENT DISP_TASK 8 EVENT_DEFERRED 3
+#DSTRM_EVENT DISP_TASK 8 EVENT_NON_DEFERRED 5
-DSTRM_EVENT DSRT_DISPATCH_IMPL 9 INIT2 0
+#DSTRM_EVENT DSRT_DISPATCH_IMPL 9 INIT2 0
-DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD_LOCK_ACQUIRE 12
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD_LOCK_ACQUIRE 11
-DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL_LOCK_ACQUIRE 10
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL_LOCK_ACQUIRE 9
-DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD 8
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD 7
-DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL 6
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL 5
-DSTRM_EVENT MSG_QUEUE 10 AFTER_PUTQ_CALL 4
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_PUTQ_CALL 3
-DSTRM_EVENT MSG_QUEUE 10 AFTER_GETQ_CALL 2
-DSTRM_EVENT MSG_QUEUE 10 BEFORE_GETQ_CALL 1
-DSTRM_EVENT MSG_QUEUE 10 QUEUE_LEVEL 0
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD_LOCK_ACQUIRE 12
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD_LOCK_ACQUIRE 11
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL_LOCK_ACQUIRE 10
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL_LOCK_ACQUIRE 9
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_DEQUEUE_HEAD 8
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_DEQUEUE_HEAD 7
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_ENQUEUE_TAIL 6
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_ENQUEUE_TAIL 5
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_PUTQ_CALL 4
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_PUTQ_CALL 3
+#DSTRM_EVENT MSG_QUEUE 10 AFTER_GETQ_CALL 2
+#DSTRM_EVENT MSG_QUEUE 10 BEFORE_GETQ_CALL 1
+#DSTRM_EVENT MSG_QUEUE 10 QUEUE_LEVEL 0
-DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_CONSUMER 0
-DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_SUPPLIER 1
-DSTRM_EVENT EC2_GROUP 11 DISPATCH_THE_EVENT 2
-DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_BEGIN 3
-DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_END 4
-DSTRM_EVENT EC2_GROUP 11 ENTER_TIMEOUT_GENERATOR 5
+#DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_CONSUMER 0
+#DSTRM_EVENT EC2_GROUP 11 ENTER_PROXY_PUSH_SUPPLIER 1
+#DSTRM_EVENT EC2_GROUP 11 START_SCHEDULING 6
+#DSTRM_EVENT EC2_GROUP 11 END_SCHEDULING 7
+#DSTRM_EVENT EC2_GROUP 11 DISPATCH_THE_EVENT 2
+#DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_BEGIN 3
+#DSTRM_EVENT EC2_GROUP 11 DISPATCH_COMMAND_ENQUEUE_END 4
+#DSTRM_EVENT EC2_GROUP 11 ENTER_TIMEOUT_GENERATOR 5
-DSTRM_EVENT TIMEOUT 12 TIMEOUT_EVENT 0
+#DSTRM_EVENT TIMEOUT 12 TIMEOUT_EVENT 0