diff options
| author | Alan Conway <aconway@apache.org> | 2009-08-10 21:10:53 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2009-08-10 21:10:53 +0000 |
| commit | f1ce462da088bba87d891014c5d8b5c9eeaca238 (patch) | |
| tree | 89633a0a0a866c96250104ee064011e172868003 /qpid/cpp/src/cluster.mk | |
| parent | 9d4cbbe253442fc625a4d2bf61314df7fa26e842 (diff) | |
| download | qpid-python-f1ce462da088bba87d891014c5d8b5c9eeaca238.tar.gz | |
Watchdog feature to remove unresponsive cluster nodes.
In some intstances (e.g. while resolving an error) it's possible for a
hung process to hang the entire cluster as they wait for its response.
The cluster can handle terminated processes but hung processes present
a problem.
If the watchdog plugin is loaded and --watchdog-interval is set then
the broker forks a child process that runs a very simple watchdog
program, and starts a timer in the broker process to signal the watchdog
every interval/2 seconds. The watchdog kills its parent if it does not
receive a signal for interval seconds. This allows a stuck broker to be
removed from the cluster so other cluster members can continue.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@802927 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/cluster.mk')
| -rw-r--r-- | qpid/cpp/src/cluster.mk | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/qpid/cpp/src/cluster.mk b/qpid/cpp/src/cluster.mk index c4907a1b04..d90a06e1e2 100644 --- a/qpid/cpp/src/cluster.mk +++ b/qpid/cpp/src/cluster.mk @@ -89,4 +89,13 @@ cluster_la_LIBADD= -lcpg $(libcman) libqpidbroker.la libqpidclient.la cluster_la_CXXFLAGS = $(AM_CXXFLAGS) -fno-strict-aliasing cluster_la_LDFLAGS = $(PLUGINLDFLAGS) +# The watchdog plugin and helper executable +dmodule_LTLIBRARIES += watchdog.la +watchdog_la_SOURCES = qpid/cluster/WatchDogPlugin.cpp +watchdog_la_LIBADD = libqpidbroker.la +watchdog_la_LDFLAGS = $(PLUGINLDFLAGS) + +qpidexec_PROGRAMS += qpidd_watchdog +qpidd_watchdog_SOURCES = qpid/cluster/qpidd_watchdog.cpp + endif # HAVE_LIBCPG |
