summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-03-18 21:09:12 +0000
committerwolff1 <wolff1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2009-03-18 21:09:12 +0000
commitac9508202157630e19a09ad5f8cf33bc50f5b53f (patch)
tree2c09e97df07be106fbc4d26b2d5f9703f51dbbf8
parent0a92873f69145d3e9f4bb56b339069e01a5d21f4 (diff)
downloadATCD-ac9508202157630e19a09ad5f8cf33bc50f5b53f.tar.gz
ChangeLogTag: Wed Mar 18 21:06:23 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
-rw-r--r--TAO/ChangeLog24
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.cpp21
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker.mpc4
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker_i.cpp9
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp4
-rw-r--r--TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp2
-rw-r--r--TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp5
-rw-r--r--TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp4
8 files changed, 58 insertions, 15 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 9f9490fd7b7..94c48321cda 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,27 @@
+Wed Mar 18 21:06:23 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
+
+ * orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp:
+
+ Removed triggering of a process failure in case of a failed
+ StateSynchronizationAgent to prevent duplicate notifications due
+ to HostMonitor messages.
+
+ * orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker_i.cpp
+ * orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.cpp:
+
+ Fixed behavioral bugs.
+
+ * orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp
+ * orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker.mpc
+ * orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp
+
+ Added RTCORBA code to client and server.
+
+ * tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp:
+
+ Removed throw statements that interfere with the interceptor
+ framework.
+
Tue Mar 17 21:37:47 UTC 2009 Friedhelm Wolf <fwolf@dre.vanderbilt.edu>
* orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.cpp
index daf2eb3636e..6e1ffafb619 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.cpp
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Client_Timer_Handler.cpp
@@ -4,6 +4,8 @@
#include <ace/High_Res_Timer.h>
#include "Client_Timer_Handler.h"
#include "WorkerC.h"
+#include "ace/Reactor.h"
+#include "tao/ORB_Core.h"
extern double execution_time;
@@ -86,11 +88,22 @@ Client_Timer_Handler::handle_timeout (const ACE_Time_Value &,
return 1;
}
- if ((max_iterations_ > 0) && (++invocations_ >= max_iterations_))
+ try
{
- worker_->stop ();
-
- orb_->shutdown ();
+ if ((max_iterations_ > 0) && (++invocations_ >= max_iterations_))
+ {
+ worker_->stop ();
+
+ orb_->orb_core ()->reactor ()->cancel_timer (this);
+
+ orb_->shutdown ();
+ }
+ }
+ catch (CORBA::Exception & ex)
+ {
+ ACE_DEBUG ((LM_WARNING,
+ "Client_Timer_Handler::handle_timeout () after run_task - "
+ "caught: %s", ex._info ().c_str ()));
}
return 0;
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker.mpc b/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker.mpc
index e5f97534bd7..0166a030785 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker.mpc
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker.mpc
@@ -9,7 +9,7 @@ project(*idl): taoidldefaults {
custom_only = 1
}
-project(*Server): lwft_server, lwft_client, naming {
+project(*Server): lwft_server, lwft_client, naming, rtcorba {
after += *idl
libpaths += $(CUTS_ROOT)/lib
@@ -30,7 +30,7 @@ project(*Server): lwft_server, lwft_client, naming {
}
}
-project(*Client): lwft_client, naming {
+project(*Client): lwft_client, naming, rtcorba {
after += *idl
Source_Files {
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker_i.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker_i.cpp
index 9e2a50a019a..e7806502566 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker_i.cpp
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/Worker_i.cpp
@@ -21,7 +21,7 @@ Failure_Task::svc (void)
condition_.wait ();
}
- orb_->shutdown ();
+ orb_->shutdown (true);
return 0;
}
@@ -71,7 +71,7 @@ Worker_i::run_task (CORBA::Double execution_time)
timer_.elapsed_time (last_execution_time_);
- ACE_DEBUG ((LM_TRACE, "le=%d\n", last_execution_time_.msec ()));
+ ACE_DEBUG ((LM_TRACE, "x=%d ", last_execution_time_.msec ()));
task_.signal ();
@@ -81,7 +81,6 @@ Worker_i::run_task (CORBA::Double execution_time)
void Worker_i::stop ()
{
task_.stop ();
- this->orb_->shutdown ();
}
void
@@ -95,7 +94,7 @@ Worker_i::set_state (const CORBA::Any & state_value)
state_ = value;
else
ACE_DEBUG ((LM_WARNING,
- "Worker_i::set_state () "
+ "(%P|%t) Worker_i::set_state () "
"could not extract state value from Any."));
ACE_DEBUG ((LM_TRACE, "Worker_i::set_state (%d) called.\n", value));
@@ -110,7 +109,7 @@ Worker_i::get_state ()
// create intermediate object with the value
CORBA::Long value = state_;
- ACE_DEBUG ((LM_DEBUG, "Worker_i::get_state returns %d.\n", value));
+ ACE_DEBUG ((LM_DEBUG, "(%P|%t) Worker_i::get_state returns %d.\n", value));
// insert value into the any object
*state <<= value;
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp
index 885a0270812..dde0f65d562 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/client.cpp
@@ -9,6 +9,8 @@
#include "ace/Reactor.h"
#include "tao/ORB_Core.h"
+#include "tao/RTCORBA/RTCORBA.h"
+
const ACE_TCHAR *ior1 = ACE_TEXT("file://test.ior");
unsigned long iterations = 0;
unsigned long log_start = 0;
@@ -129,7 +131,7 @@ ACE_TMAIN(int argc, ACE_TCHAR *argv[])
orb->run ();
- orb->orb_core ()->reactor ()->cancel_timer (&timeout_handler);
+ // orb->orb_core ()->reactor ()->cancel_timer (&timeout_handler);
}
catch (const CORBA::Exception& ex)
{
diff --git a/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp b/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp
index 72ff402dc4e..38e04889b32 100644
--- a/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp
+++ b/TAO/orbsvcs/examples/FaultTolerance/FLARe/Worker/server.cpp
@@ -14,6 +14,8 @@
#include "orbsvcs/orbsvcs/LWFT/LWFT_Client_Init.h"
#include "orbsvcs/Naming/Naming_Client.h"
+#include "tao/RTCORBA/RTCORBA.h"
+
std::string ior_output = "test1.ior";
long invocations = 0;
diff --git a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp
index 2748ca9f59e..347db876543 100644
--- a/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp
+++ b/TAO/orbsvcs/orbsvcs/LWFT/ReplicationManager.cpp
@@ -1577,10 +1577,13 @@ ReplicationManager_i::send_state_synchronization_rank_list (void)
ACE_CString process_id = al_iter->key ();
- (void) state_synchronization_agent_map_.unbind (al_iter);
+ state_synchronization_agent_map_.unbind (al_iter);
+
al_iter = tmp_it;
+#ifdef ERRORDETECTION_THROUGH_STATE_SYNCH_AGENT_FAILURES
this->proc_failure (process_id.c_str ());
+#endif
ACE_DEBUG ((LM_TRACE,
"RM: A state synchronization agent (pid=%s) died.\n",
diff --git a/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp b/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp
index 0a95d7cdddf..dde24c0455c 100644
--- a/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp
+++ b/TAO/tao/RTCORBA/RT_Invocation_Endpoint_Selectors.cpp
@@ -49,7 +49,7 @@ TAO_RT_Invocation_Endpoint_Selector::select_endpoint (
// If we get here, we completely failed to find an endpoint selector
// that we know how to use, so throw an exception.
- throw ::CORBA::TRANSIENT (CORBA::OMGVMCID | 2, CORBA::COMPLETED_NO);
+ // NO NO throw ::CORBA::TRANSIENT (CORBA::OMGVMCID | 2, CORBA::COMPLETED_NO);
}
else
{
@@ -132,7 +132,7 @@ TAO_RT_Invocation_Endpoint_Selector::select_endpoint_based_on_client_protocol_po
// If we get here, we found at least one pertinent profile, but no
// usable endpoints.
- throw ::CORBA::TRANSIENT (CORBA::OMGVMCID | 2, CORBA::COMPLETED_NO);
+ // throw ::CORBA::TRANSIENT (CORBA::OMGVMCID | 2, CORBA::COMPLETED_NO);
}