You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2010/08/19 06:10:44 UTC

svn commit: r987012 - in /tuscany/sca-cpp/trunk: components/log/ components/sqldb/ kernel/ modules/http/ modules/json/ modules/server/ samples/store-cluster/

Author: jsdelfino
Date: Thu Aug 19 04:10:43 2010
New Revision: 987012

URL: http://svn.apache.org/viewvc?rev=987012&view=rev
Log:
Script fixes to get database working with the HTTPS-enabled store-cluster sample configuration. Also some logging improvements and aggregation of the sample logs using scribe.

Added:
    tuscany/sca-cpp/trunk/components/log/scribe-cat.cpp
    tuscany/sca-cpp/trunk/components/log/scribe-tail-start
      - copied, changed from r987011, tuscany/sca-cpp/trunk/samples/store-cluster/server-conf
    tuscany/sca-cpp/trunk/components/log/scribe-tail-stop
      - copied, changed from r987011, tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-standby-conf
Removed:
    tuscany/sca-cpp/trunk/components/log/scribe-cat
    tuscany/sca-cpp/trunk/components/log/scribecat.py
Modified:
    tuscany/sca-cpp/trunk/components/log/Makefile.am
    tuscany/sca-cpp/trunk/components/log/scribe-test
    tuscany/sca-cpp/trunk/components/log/scribed-central-conf
    tuscany/sca-cpp/trunk/components/log/scribed-client-conf
    tuscany/sca-cpp/trunk/components/sqldb/pgsql-standby-conf
    tuscany/sca-cpp/trunk/components/sqldb/standby-test
    tuscany/sca-cpp/trunk/kernel/fstream.hpp
    tuscany/sca-cpp/trunk/kernel/monad.hpp
    tuscany/sca-cpp/trunk/kernel/stream.hpp
    tuscany/sca-cpp/trunk/modules/http/httpd-conf
    tuscany/sca-cpp/trunk/modules/http/httpd-ssl-conf
    tuscany/sca-cpp/trunk/modules/http/httpd.hpp
    tuscany/sca-cpp/trunk/modules/json/json.hpp
    tuscany/sca-cpp/trunk/modules/server/mod-eval.hpp
    tuscany/sca-cpp/trunk/modules/server/mod-wiring.cpp
    tuscany/sca-cpp/trunk/samples/store-cluster/proxy-conf
    tuscany/sca-cpp/trunk/samples/store-cluster/server-conf
    tuscany/sca-cpp/trunk/samples/store-cluster/server-ssl-conf
    tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-master-conf
    tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-standby-conf
    tuscany/sca-cpp/trunk/samples/store-cluster/ssl-start
    tuscany/sca-cpp/trunk/samples/store-cluster/ssl-stop
    tuscany/sca-cpp/trunk/samples/store-cluster/start
    tuscany/sca-cpp/trunk/samples/store-cluster/stop
    tuscany/sca-cpp/trunk/samples/store-cluster/tunnel-ssl-conf

Modified: tuscany/sca-cpp/trunk/components/log/Makefile.am
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/components/log/Makefile.am?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/components/log/Makefile.am (original)
+++ tuscany/sca-cpp/trunk/components/log/Makefile.am Thu Aug 19 04:10:43 2010
@@ -22,17 +22,17 @@ INCLUDES = -I${THRIFT_INCLUDE} -I${FB303
 incl_HEADERS = *.hpp
 incldir = $(prefix)/include/components/log
 
-dist_comp_SCRIPTS = scribed-central-conf scribed-client-conf scribed-central-start scribed-central-stop scribed-client-start scribed-client-stop scribe-cat
+dist_comp_SCRIPTS = scribed-central-conf scribed-client-conf scribed-central-start scribed-central-stop scribed-client-start scribed-client-stop scribe-tail-start scribe-tail-stop
 compdir=$(prefix)/components/log
 
-comp_DATA = scribe.prefix thrift.prefix scribecat.py
+comp_DATA = scribe.prefix thrift.prefix
 scribe.prefix: $(top_builddir)/config.status
 	echo ${SCRIBE_PREFIX} >scribe.prefix
 
 thrift.prefix: $(top_builddir)/config.status
 	echo ${THRIFT_PREFIX} >thrift.prefix
 
-EXTRA_DIST = log.composite *.py *.scm *.thrift
+EXTRA_DIST = log.composite *.scm *.thrift
 
 BUILT_SOURCES=gen-cpp/fb303_constants.cpp gen-cpp/fb303_types.cpp gen-cpp/scribe_constants.cpp gen-cpp/scribe.cpp gen-cpp/scribe_types.cpp gen-cpp/FacebookService.cpp gen-cpp/scribe.h
 gen-cpp/fb303_constants.cpp gen-cpp/fb303_types.cpp gen-cpp/scribe_constants.cpp gen-cpp/scribe.cpp gen-cpp/scribe_types.cpp gen-cpp/FacebookService.cpp gen-cpp/scribe.h: scribe.thrift
@@ -57,6 +57,13 @@ liblogger_la_LDFLAGS = -L${THRIFT_LIB} -
 liblogger.so:
 	ln -s .libs/liblogger.so
 
+comp_PROGRAMS = scribe-cat
+
+nodist_scribe_cat_SOURCES = gen-cpp/fb303_constants.cpp gen-cpp/fb303_types.cpp gen-cpp/scribe_constants.cpp gen-cpp/scribe.cpp gen-cpp/scribe_types.cpp gen-cpp/FacebookService.cpp gen-cpp/scribe.h
+scribe_cat_CXXFLAGS = -Wno-unused-parameter
+scribe_cat_SOURCES = scribe-cat.cpp
+scribe_cat_LDFLAGS = -L${THRIFT_LIB} -R${THRIFT_LIB} -lthrift -L${FB303_LIB} -R${FB303_LIB} -lfb303 -L${SCRIBE_LIB} -R${SCRIBE_LIB} -lscribe
+
 client_test_SOURCES = client-test.cpp
 client_test_LDFLAGS = -lxml2 -lcurl -lmozjs
 

Added: tuscany/sca-cpp/trunk/components/log/scribe-cat.cpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/components/log/scribe-cat.cpp?rev=987012&view=auto
==============================================================================
--- tuscany/sca-cpp/trunk/components/log/scribe-cat.cpp (added)
+++ tuscany/sca-cpp/trunk/components/log/scribe-cat.cpp Thu Aug 19 04:10:43 2010
@@ -0,0 +1,77 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+/* $Rev$ $Date$ */
+
+/**
+ * A utility that logs stdin into a scribe log.
+ */
+
+#include "string.hpp"
+#include "function.hpp"
+#include "list.hpp"
+#include "value.hpp"
+#include "monad.hpp"
+
+#undef debug
+#define debug(...)
+#include "scribe.hpp"
+
+namespace tuscany {
+namespace scribecat {
+
+int cat(const string& category, const string& type) {
+    // Connect to Scribe
+    scribe::Scribe& sc = *(new (gc_new<scribe::Scribe>()) scribe::Scribe("localhost", 1464));
+
+    // Read lines from stdin and log them
+    char buf[8192];
+    for (;;) {
+        const char* s = fgets(buf, 8192, stdin);
+        if (s == NULL)
+            return 0;
+        const int l = strlen(s);
+        if (l < 2)
+            return 0;
+        buf[l - 1] = '\0';
+
+        // Log each line as is
+        if (length(type) == 0) {
+            const failable<bool> val = scribe::log(buf, category, sc);
+            if (!hasContent(val))
+                return 1;
+            continue;
+        }
+        
+        // Log each line prefixed with time and a type tag
+        ostringstream os;
+        os << "[" << logTime() << "] [" << type << "] " << buf;
+        const failable<bool> val = scribe::log(c_str(str(os)), category, sc);
+        if (!hasContent(val))
+            return 1;
+    }
+}
+
+}
+}
+
+int main(const int argc, const char** argv) {
+    return tuscany::scribecat::cat(argc < 2? "default" : argv[1], argc < 3? "" : argv[2]);
+}
+

Copied: tuscany/sca-cpp/trunk/components/log/scribe-tail-start (from r987011, tuscany/sca-cpp/trunk/samples/store-cluster/server-conf)
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/components/log/scribe-tail-start?p2=tuscany/sca-cpp/trunk/components/log/scribe-tail-start&p1=tuscany/sca-cpp/trunk/samples/store-cluster/server-conf&r1=987011&r2=987012&rev=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/server-conf (original)
+++ tuscany/sca-cpp/trunk/components/log/scribe-tail-start Thu Aug 19 04:10:43 2010
@@ -17,18 +17,28 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-root=$1
-port=$2
+# Tail a file and pipe into scribe-cat
+here=`readlink -f $0`; here=`dirname $here`
 
-# Configure an app server
-../../modules/http/httpd-conf $root sca-store.com $port/80 htdocs
-../../modules/http/vhost-conf $root
-../../modules/server/server-conf $root
-../../modules/python/python-conf $root
-cat >>$root/conf/httpd.conf <<EOF
-# Configure SCA Composite for mass dynamic virtual hosting
-SCAVirtualContribution `pwd`/domains/
-SCAVirtualComposite store.composite
+category=""
+type=""
+file=""
+if [ "$3" != "" ]; then
+    category=$1
+    type=$2
+    file=$3
+else
+    if [ "$2" != "" ]; then
+        category=$1
+        file=$2
+    else
+        file=$1
+    fi
+fi
 
-EOF
+mkdir -p `dirname $file`
+touch $file
+file=`readlink -f $file`
+
+tail -f -n 0 $file | $here/scribe-cat $category $type &
 

Copied: tuscany/sca-cpp/trunk/components/log/scribe-tail-stop (from r987011, tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-standby-conf)
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/components/log/scribe-tail-stop?p2=tuscany/sca-cpp/trunk/components/log/scribe-tail-stop&p1=tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-standby-conf&r1=987011&r2=987012&rev=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-standby-conf (original)
+++ tuscany/sca-cpp/trunk/components/log/scribe-tail-stop Thu Aug 19 04:10:43 2010
@@ -17,12 +17,26 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
-root=$1
-mhost=$2
-mport=$3
-mhttpport=$4
-port=$5
+# Stop tailing a file
+here=`readlink -f $0`; here=`dirname $here`
 
-# Configure a standby database server
-../../components/sqldb/pgsql-standby-conf $root $mhost $mport $mhttpport $port
+category=""
+type=""
+file=""
+if [ "$3" != "" ]; then
+    category=$1
+    type=$2
+    file=$3
+else
+    if [ "$2" != "" ]; then
+        category=$1
+        file=$2
+    else
+        file=$1
+    fi
+fi
+file=`readlink -f $file`
+
+cmd="tail -f -n 0 $file"
+kill `ps -ef | grep -v grep | grep "${cmd}" | awk '{ print $2 }'`
 

Modified: tuscany/sca-cpp/trunk/components/log/scribe-test
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/components/log/scribe-test?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/components/log/scribe-test (original)
+++ tuscany/sca-cpp/trunk/components/log/scribe-test Thu Aug 19 04:10:43 2010
@@ -28,7 +28,7 @@ rm -rf tmp
 sleep 1
 
 # Test logging a message
-echo test | ./scribe-cat
+echo test | ./scribe-cat >/dev/null
 sleep 4
 grep test tmp/scribe/logs/central/default/default_current >/dev/null
 rc=$?

Modified: tuscany/sca-cpp/trunk/components/log/scribed-central-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/components/log/scribed-central-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/components/log/scribed-central-conf (original)
+++ tuscany/sca-cpp/trunk/components/log/scribed-central-conf Thu Aug 19 04:10:43 2010
@@ -22,6 +22,11 @@ here=`readlink -f $0`; here=`dirname $he
 mkdir -p $1
 root=`readlink -f $1`
 
+port=$2
+if [ "$port" = "" ]; then
+    port="1463"
+fi
+
 mkdir -p $root/scribe/conf
 mkdir -p $root/scribe/logs/central
 mkdir -p $root/scribe/logs/central-secondary
@@ -29,7 +34,7 @@ mkdir -p $root/scribe/logs/central-secon
 cat >$root/scribe/conf/scribe-central.conf <<EOF
 # Generated by: scribed-central-conf $*
 # Scribe central configuration
-port=1463
+port=$port
 max_msg_per_second=2000000
 check_interval=3
 

Modified: tuscany/sca-cpp/trunk/components/log/scribed-client-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/components/log/scribed-client-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/components/log/scribed-client-conf (original)
+++ tuscany/sca-cpp/trunk/components/log/scribed-client-conf Thu Aug 19 04:10:43 2010
@@ -21,7 +21,12 @@
 here=`readlink -f $0`; here=`dirname $here`
 mkdir -p $1
 root=`readlink -f $1`
+
 central=$2
+cport=$3
+if [ "$cport" = "" ]; then
+    cport="1463"
+fi
 
 mkdir -p $root/scribe/conf
 mkdir -p $root/scribe/logs/client-secondary
@@ -47,8 +52,8 @@ retry_interval_range=10
 
 <primary>
 type=network
-remote_host=$2
-remote_port=1463
+remote_host=$central
+remote_port=$cport
 </primary>
 
 <secondary>

Modified: tuscany/sca-cpp/trunk/components/sqldb/pgsql-standby-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/components/sqldb/pgsql-standby-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/components/sqldb/pgsql-standby-conf (original)
+++ tuscany/sca-cpp/trunk/components/sqldb/pgsql-standby-conf Thu Aug 19 04:10:43 2010
@@ -22,19 +22,8 @@ here=`readlink -f $0`; here=`dirname $he
 mkdir -p $1
 root=`readlink -f $1`
 
-# Master server address
-if [ "$2" = "" ]; then
-    mhost="localhost"
-    mport="5432"
-    mhttpport="80"
-else
-    mhost="$2"
-    mport="$3"
-    mhttpport="$4"
-fi
-
 # Server address
-addr=$5
+addr=$2
 if [ "$addr" = "" ]; then
     ip="*"
     port="5432"
@@ -46,6 +35,17 @@ else
     port=`$here/../../modules/http/httpd-addr port $addr`
 fi
 
+# Master server address
+if [ "$3" = "" ]; then
+    mhost="localhost"
+    mport="5432"
+    mhttpport="80"
+else
+    mhost="$3"
+    mport="$4"
+    mhttpport="$5"
+fi
+
 pgsql_prefix=`cat $here/pgsql.prefix`
 mkdir -p $root/sqldb/data
 chmod 700 $root/sqldb/data

Modified: tuscany/sca-cpp/trunk/components/sqldb/standby-test
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/components/sqldb/standby-test?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/components/sqldb/standby-test (original)
+++ tuscany/sca-cpp/trunk/components/sqldb/standby-test Thu Aug 19 04:10:43 2010
@@ -25,7 +25,7 @@
 ./pgsql localhost 5432 "create table test(key text, value text);" 1>/dev/null 2>&1
 ../../modules/http/httpd-start tmp/master
 sleep 2
-./pgsql-standby-conf tmp/standby localhost 5432 8090 5433
+./pgsql-standby-conf tmp/standby 5433 localhost 5432 8090
 ./pgsql-start tmp/standby
 
 # Test

Modified: tuscany/sca-cpp/trunk/kernel/fstream.hpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/kernel/fstream.hpp?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/kernel/fstream.hpp (original)
+++ tuscany/sca-cpp/trunk/kernel/fstream.hpp Thu Aug 19 04:10:43 2010
@@ -28,6 +28,7 @@
 
 #include <stdio.h>
 #include <stdarg.h>
+#include <time.h>
 #include "string.hpp"
 #include "stream.hpp"
 
@@ -137,20 +138,107 @@ ofstream cerr(stderr);
 ifstream cin(stdin);
 
 /**
- * Debug log stream.
+ * Streams used for logging.
  */
+
+/**
+ * Format the current time.
+ */
+const string logTime() {
+    const time_t t = ::time(NULL);
+    const tm* lt = localtime(&t);
+    char ft[32];
+    strftime(ft, 31, "%a %b %d %H:%M:%S %Y", lt);
+    return ft;
+}
+
+/*
+ * Log stream.
+ */
+class logfstream : public ostream {
+public:
+    logfstream(FILE* file, const string& type) : file(file), type(type), owner(false), head(false) {
+    }
+
+    logfstream(const logfstream& os) : file(os.file), type(type), owner(false), head(os.head) {
+    }
+
+    ~logfstream() {
+        if (!owner)
+            return;
+        if (file == NULL)
+            return;
+        fclose(file);
+    }
+
+    logfstream& vprintf(const char* fmt, ...) {
+        whead();
+        va_list args;
+        va_start (args, fmt);
+        vfprintf (file, fmt, args);
+        va_end (args);
+        return *this;
+    }
+
+    logfstream& write(const string& s) {
+        whead();
+        fwrite(c_str(s), 1, length(s), file);
+        if (s == "\n")
+            head = false;
+        return *this;
+    }
+
+    logfstream& flush() {
+        fflush(file);
+        return *this;
+    }
+
+private:
+    FILE* file;
+    const string type;
+    bool owner;
+    bool head;
+
+    logfstream& whead() {
+        if (head)
+            return *this;
+        head = true;
+        *this << "[" << logTime() << "] [" << type << "] ";
+        return *this;
+    }
+};
+
+/**
+ * Info and failure log streams.
+ */
+logfstream cinfo(stderr, "info");
+logfstream cfailure(stderr, "error");
+
 #ifdef WANT_MAINTAINER_MODE
 
-template<typename V> const bool debug(const V& v, const string& msg) {
-    cerr << msg << ": " << v << endl;
+/**
+ * Debug log stream and debug functions.
+ */
+logfstream cdebug(stderr, "debug");
+
+/**
+ * Log a debug message.
+ */
+const bool debugLog(const string& msg) {
+    cdebug << msg << endl;
     return true;
 }
 
-const bool debug(const string& msg) {
-    cerr << msg << endl;
+/**
+ * Log a debug message and a value.
+ */
+template<typename V> const bool debugLog(const V& v, const string& msg) {
+    cdebug << msg << ": " << v << endl;
     return true;
 }
 
+#define debug(...) tuscany::debugLog(__VA_ARGS__)
+
 #else
 
 #define debug(...)

Modified: tuscany/sca-cpp/trunk/kernel/monad.hpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/kernel/monad.hpp?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/kernel/monad.hpp (original)
+++ tuscany/sca-cpp/trunk/kernel/monad.hpp Thu Aug 19 04:10:43 2010
@@ -29,6 +29,8 @@
 #include "function.hpp"
 #include "string.hpp"
 #include "stream.hpp"
+#include "sstream.hpp"
+#include "fstream.hpp"
 
 namespace tuscany
 {
@@ -275,7 +277,12 @@ template<typename V, typename F> const l
  * Returns a failable monad with a failure in it.
  */
 template<typename V, typename F> const failable<V, F> mkfailure(const F& f) {
-    debug(f, "failable::mkfailure");
+#ifdef WANT_MAINTAINER_MODE
+    ostringstream os;
+    os << f;
+    if (length(str(os)) != 0)
+        debug(f, "failable::mkfailure");
+#endif
     return failable<V, F>(false, f);
 }
 

Modified: tuscany/sca-cpp/trunk/kernel/stream.hpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/kernel/stream.hpp?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/kernel/stream.hpp (original)
+++ tuscany/sca-cpp/trunk/kernel/stream.hpp Thu Aug 19 04:10:43 2010
@@ -97,7 +97,7 @@ class stream_endl {
 } endl;
 
 ostream& operator<<(ostream& os, unused const stream_endl e) {
-    os.vprintf("%s", "\n");
+    os.write("\n");
     return os.flush();
 }
 

Modified: tuscany/sca-cpp/trunk/modules/http/httpd-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/http/httpd-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/http/httpd-conf (original)
+++ tuscany/sca-cpp/trunk/modules/http/httpd-conf Thu Aug 19 04:10:43 2010
@@ -92,7 +92,7 @@ HostNameLookups Off
 # Log HTTP requests
 LogLevel info
 ErrorLog $root/logs/error_log
-LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
+LogFormat "[%{%a %b %d %H:%M:%S %Y}t] [access] %h %l %u \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combined
 CustomLog $root/logs/access_log combined
 
 # Configure Mime types

Modified: tuscany/sca-cpp/trunk/modules/http/httpd-ssl-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/http/httpd-ssl-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/http/httpd-ssl-conf (original)
+++ tuscany/sca-cpp/trunk/modules/http/httpd-ssl-conf Thu Aug 19 04:10:43 2010
@@ -24,6 +24,9 @@ root=`readlink -f $1`
 
 conf=`cat $root/conf/httpd.conf | grep "# Generated by: httpd-conf"`
 host=`echo $conf | awk '{ print $6 }'`
+gport=`echo $conf | awk '{ print $7 }'`
+port=`$here/httpd-addr port $gport`
+pport=`$here/httpd-addr pport $gport`
 
 sslpport=`$here/httpd-addr pport $2`
 ssllisten=`$here/httpd-addr listen $2`
@@ -44,7 +47,8 @@ cat >>$root/conf/httpd.conf <<EOF
 # Redirect all HTTP traffic to HTTPS
 <Location />
 RewriteEngine on
-RewriteCond %{HTTPS} !^on$
+RewriteCond %{SERVER_PORT} ^$port$ [OR]
+RewriteCond %{SERVER_PORT} ^$pport$
 RewriteRule .* https://%{SERVER_NAME}:$sslpport%{REQUEST_URI} [R,L]
 </Location>
 
@@ -99,8 +103,7 @@ SSLVerifyClient optional
 SSLVerifyDepth 1
 
 # Log SSL requests
-#CustomLog "$root/logs/ssl_request_log" "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
-LogFormat "%h %l %u %t %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{SSL_CLIENT_I_DN}x\" \"%{SSL_CLIENT_S_DN}x\"" sslcombined
+LogFormat "[%{%a %b %d %H:%M:%S %Y}t] [sslaccess] %h %l %u %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{SSL_CLIENT_I_DN}x\" \"%{SSL_CLIENT_S_DN}x\"" sslcombined
 CustomLog $root/logs/ssl_access_log sslcombined
 
 EOF

Modified: tuscany/sca-cpp/trunk/modules/http/httpd.hpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/http/httpd.hpp?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/http/httpd.hpp (original)
+++ tuscany/sca-cpp/trunk/modules/http/httpd.hpp Thu Aug 19 04:10:43 2010
@@ -43,6 +43,7 @@
 #include <util_script.h>
 #include <util_md5.h>
 #include <http_config.h>
+#include <http_log.h>
 #include <ap_mpm.h>
 #include <mod_core.h>
 
@@ -50,6 +51,7 @@
 #include "stream.hpp"
 #include "list.hpp"
 #include "value.hpp"
+#include "monad.hpp"
 
 
 namespace tuscany {
@@ -408,44 +410,60 @@ const void* userData(const string& k, co
 /**
  * Debug log.
  */
+
+/**
+ * Log an optional value.
+ */
 const char* debugOptional(const char* s) {
     if (s == NULL)
         return "";
     return s;
 }
 
+/**
+ * Log a header
+ */
 int debugHeader(unused void* r, const char* key, const char* value) {
-    cerr << "  header key: " << key << ", value: " << value << endl;
+    cdebug << "  header key: " << key << ", value: " << value << endl;
     return 1;
 }
 
+/**
+ * Log an environment variable
+ */
 int debugEnv(unused void* r, const char* key, const char* value) {
-    cerr << "  var key: " << key << ", value: " << value << endl;
+    cdebug << "  var key: " << key << ", value: " << value << endl;
     return 1;
 }
 
+/**
+ * Log a note.
+ */
 int debugNote(unused void* r, const char* key, const char* value) {
-    cerr << "  note key: " << key << ", value: " << value << endl;
+    cdebug << "  note key: " << key << ", value: " << value << endl;
     return 1;
 }
 
+/**
+ * Log a request.
+ */
 const bool debugRequest(request_rec* r, const string& msg) {
-    cerr << msg << ":" << endl;
-    cerr << "  server: " << debugOptional(r->server->server_hostname) << endl;
-    cerr << "  protocol: " << debugOptional(r->protocol) << endl;
-    cerr << "  method: " << debugOptional(r->method) << endl;
-    cerr << "  method number: " << r->method_number << endl;
-    cerr << "  content type: " << contentType(r) << endl;
-    cerr << "  content encoding: " << debugOptional(r->content_encoding) << endl;
+    cdebug << msg << ":" << endl;
+    cdebug << "  server: " << debugOptional(r->server->server_hostname) << endl;
+    cdebug << "  protocol: " << debugOptional(r->protocol) << endl;
+    cdebug << "  method: " << debugOptional(r->method) << endl;
+    cdebug << "  method number: " << r->method_number << endl;
+    cdebug << "  content type: " << contentType(r) << endl;
+    cdebug << "  content encoding: " << debugOptional(r->content_encoding) << endl;
     apr_table_do(debugHeader, r, r->headers_in, NULL);
-    cerr << "  unparsed uri: " << debugOptional(r->unparsed_uri) << endl;
-    cerr << "  uri: " << debugOptional(r->uri) << endl;
-    cerr << "  path info: " << debugOptional(r->path_info) << endl;
-    cerr << "  filename: " << debugOptional(r->filename) << endl;
-    cerr << "  uri tokens: " << pathTokens(r->uri) << endl;
-    cerr << "  args: " << debugOptional(r->args) << endl;
-    cerr << "  user: " << debugOptional(r->user) << endl;
-    cerr << "  auth type: " << debugOptional(r->ap_auth_type) << endl;
+    cdebug << "  unparsed uri: " << debugOptional(r->unparsed_uri) << endl;
+    cdebug << "  uri: " << debugOptional(r->uri) << endl;
+    cdebug << "  path info: " << debugOptional(r->path_info) << endl;
+    cdebug << "  filename: " << debugOptional(r->filename) << endl;
+    cdebug << "  uri tokens: " << pathTokens(r->uri) << endl;
+    cdebug << "  args: " << debugOptional(r->args) << endl;
+    cdebug << "  user: " << debugOptional(r->user) << endl;
+    cdebug << "  auth type: " << debugOptional(r->ap_auth_type) << endl;
     apr_table_do(debugEnv, r, r->subprocess_env, NULL);
     apr_table_do(debugEnv, r, r->notes, NULL);
     return true;

Modified: tuscany/sca-cpp/trunk/modules/json/json.hpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/json/json.hpp?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/json/json.hpp (original)
+++ tuscany/sca-cpp/trunk/modules/json/json.hpp Thu Aug 19 04:10:43 2010
@@ -41,8 +41,10 @@ namespace json {
  * Report JSON errors.
  */
 void reportError(unused JSContext *cx, const char *message, JSErrorReport *report) {
-    cerr << (const char*)(report->filename? report->filename : "<no filename>") << ":"
+#ifdef WANT_MAINTAINER_MODE
+    cdebug << (const char*)(report->filename? report->filename : "<no filename>") << ":"
             << (int)report->lineno << ":" << message << endl;
+#endif
 }
 
 /**

Modified: tuscany/sca-cpp/trunk/modules/server/mod-eval.hpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/server/mod-eval.hpp?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/server/mod-eval.hpp (original)
+++ tuscany/sca-cpp/trunk/modules/server/mod-eval.hpp Thu Aug 19 04:10:43 2010
@@ -671,7 +671,7 @@ int postConfig(apr_pool_t *p, unused apr
     // Configure the deployed components
     const failable<bool> res = confComponents(sc);
     if (!hasContent(res)) {
-        cerr << "[Tuscany] Due to one or more errors mod_tuscany_eval loading failed. Causing apache to stop loading." << endl;
+        cfailure << "[Tuscany] Due to one or more errors mod_tuscany_eval loading failed. Causing apache to stop loading." << endl;
         return -1;
     }
 
@@ -689,14 +689,14 @@ void childInit(apr_pool_t* p, server_rec
     gc_scoped_pool pool(p);
     ServerConf* sc = (ServerConf*)ap_get_module_config(s->module_config, &mod_tuscany_eval);
     if(sc == NULL) {
-        cerr << "[Tuscany] Due to one or more errors mod_tuscany_eval loading failed. Causing apache to stop loading." << endl;
+        cfailure << "[Tuscany] Due to one or more errors mod_tuscany_eval loading failed. Causing apache to stop loading." << endl;
         exit(APEXIT_CHILDFATAL);
     }
 
     // Start the components in the child process
     const failable<bool> res = startComponents(*sc);
     if (!hasContent(res)) {
-        cerr << "[Tuscany] Due to one or more errors mod_tuscany_eval loading failed. Causing apache to stop loading." << endl;
+        cfailure << "[Tuscany] Due to one or more errors mod_tuscany_eval loading failed. Causing apache to stop loading." << endl;
         exit(APEXIT_CHILDFATAL);
     }
     

Modified: tuscany/sca-cpp/trunk/modules/server/mod-wiring.cpp
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/modules/server/mod-wiring.cpp?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/modules/server/mod-wiring.cpp (original)
+++ tuscany/sca-cpp/trunk/modules/server/mod-wiring.cpp Thu Aug 19 04:10:43 2010
@@ -396,7 +396,7 @@ void childInit(apr_pool_t* p, server_rec
     gc_scoped_pool pool(p);
     ServerConf *conf = (ServerConf*)ap_get_module_config(s->module_config, &mod_tuscany_wiring);
     if(conf == NULL) {
-        cerr << "[Tuscany] Due to one or more errors mod_tuscany_wiring loading failed. Causing apache to stop loading." << endl;
+        cfailure << "[Tuscany] Due to one or more errors mod_tuscany_wiring loading failed. Causing apache to stop loading." << endl;
         exit(APEXIT_CHILDFATAL);
     }
 }

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/proxy-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/proxy-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/proxy-conf (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/proxy-conf Thu Aug 19 04:10:43 2010
@@ -24,3 +24,9 @@ port=$2
 ../../modules/http/httpd-conf $root sca-store.com $port/80 $root/htdocs
 ../../modules/http/vhost-conf $root
 ../../modules/http/proxy-conf $root
+
+# Aggregate proxy balancer logs
+category=`basename $root`
+../../components/log/scribe-tail-start $category $root/logs/error_log
+../../components/log/scribe-tail-start $category $root/logs/access_log
+

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/server-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/server-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/server-conf (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/server-conf Thu Aug 19 04:10:43 2010
@@ -32,3 +32,8 @@ SCAVirtualComposite store.composite
 
 EOF
 
+# Aggregate app server logs
+category=`basename $root`
+../../components/log/scribe-tail-start $category $root/logs/error_log
+../../components/log/scribe-tail-start $category $root/logs/access_log
+

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/server-ssl-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/server-ssl-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/server-ssl-conf (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/server-ssl-conf Thu Aug 19 04:10:43 2010
@@ -38,3 +38,8 @@ SCAVirtualComposite store.composite
 
 EOF
 
+# Aggregate app server logs
+category=`basename $root`
+../../components/log/scribe-tail-start $category $root/logs/error_log
+../../components/log/scribe-tail-start $category $root/logs/access_log
+

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-master-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-master-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-master-conf (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-master-conf Thu Aug 19 04:10:43 2010
@@ -19,6 +19,16 @@
 
 root=$1
 port=$2
+httpport=$3
+
+# Aggregate database server logs
+category=`basename $root`
+../../components/log/scribe-tail-start $category "sqldb" $root/logs/postgresql
+../../components/log/scribe-tail-start $category $root/logs/error_log
+../../components/log/scribe-tail-start $category $root/logs/access_log
+
+# Configure a database backup HTTP server
+../../modules/http/httpd-conf $root localhost $httpport $root/htdocs
 
 # Configure a database server
 if [ ! -f $root/sqldb/data/postgresql.conf ]; then
@@ -29,7 +39,7 @@ fi
 ../../components/sqldb/pgsql-conf $root $port
 if [ "$create" = "true" ]; then
     ../../components/sqldb/pgsql-start $root
-    ../../components/sqldb/pgsql localhost $port "create table store(key text, value text);" 1>/dev/null 2>&1
+    ../../components/sqldb/pgsql localhost $port "create table store(key text, value text);" 1>>$root/logs/postgresql 2>&1
     ../../components/sqldb/pgsql-stop $root
 fi
 

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-standby-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-standby-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-standby-conf (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/sqldb-standby-conf Thu Aug 19 04:10:43 2010
@@ -18,11 +18,21 @@
 #  under the License.
 
 root=$1
-mhost=$2
-mport=$3
-mhttpport=$4
-port=$5
+port=$2
+httpport=$3
+mhost=$4
+mport=$5
+mhttpport=$6
+
+# Aggregate database server logs
+category=`basename $root`
+../../components/log/scribe-tail-start $category "sqldb" $root/logs/postgresql
+../../components/log/scribe-tail-start $category $root/logs/error_log
+../../components/log/scribe-tail-start $category $root/logs/access_log
+
+# Configure a database backup HTTP server
+../../modules/http/httpd-conf $root localhost $httpport $root/htdocs
 
 # Configure a standby database server
-../../components/sqldb/pgsql-standby-conf $root $mhost $mport $mhttpport $port
+../../components/sqldb/pgsql-standby-conf $root $port $mhost $mport $mhttpport
 

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/ssl-start
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/ssl-start?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/ssl-start (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/ssl-start Thu Aug 19 04:10:43 2010
@@ -17,6 +17,8 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
+set -x
+
 # Generate SSL certificates
 ../../modules/http/ssl-ca-conf tmp/ssl sca-store.com
 ../../modules/http/ssl-cert-conf tmp/ssl sca-store.com server
@@ -24,22 +26,65 @@
 ../../modules/http/ssl-cert-conf tmp/ssl sca-store.com proxy
 ../../modules/http/ssl-cert-conf tmp/ssl sca-store.com tunnel
 
-# Start three memcached servers and a tunnel server
+# Start an SSL tunnel
+./tunnel-ssl-conf tmp/tunnel 8119 8563
+../../modules/http/httpd-start tmp/tunnel
+sleep 1
+
+# Start scribe logging
+../../modules/http/tunnel-ssl-conf tmp/tunnel 1465 localhost 563 1463
+../../modules/http/httpd-restart tmp/tunnel
+../../components/log/scribed-central-conf tmp/monitor
+../../components/log/scribed-client-conf tmp/monitor localhost 1465
+../../components/log/scribed-central-start tmp/monitor
+../../components/log/scribed-client-start tmp/monitor
+sleep 1
+
+# Start three memcached servers
+../../modules/http/tunnel-ssl-conf tmp/tunnel 11211 localhost 563 11411
 ../../components/cache/memcached-start 127.0.0.1:11411
+../../modules/http/tunnel-ssl-conf tmp/tunnel 11212 localhost 563 11412
 ../../components/cache/memcached-start 127.0.0.1:11412
+../../modules/http/tunnel-ssl-conf tmp/tunnel 11213 localhost 563 11413
 ../../components/cache/memcached-start 127.0.0.1:11413
-./tunnel-ssl-conf tmp/tunnel1
-../../modules/http/httpd-start tmp/tunnel1
+../../modules/http/httpd-restart tmp/tunnel
+sleep 1
+
+# Start a master and two hot standby databases
+../../modules/http/tunnel-ssl-conf tmp/tunnel 5432 localhost 563 5532
+../../modules/http/tunnel-ssl-conf tmp/tunnel 8502 localhost 563 8602
+../../modules/http/httpd-restart tmp/tunnel
+./sqldb-master-conf tmp/sqldb1 127.0.0.1:5532 127.0.0.1:8602
+../../components/sqldb/pgsql-start tmp/sqldb1
+../../modules/http/httpd-start tmp/sqldb1
+sleep 1
+
+../../modules/http/tunnel-ssl-conf tmp/tunnel 5433 localhost 563 5533
+../../modules/http/tunnel-ssl-conf tmp/tunnel 8503 localhost 563 8603
+../../modules/http/httpd-restart tmp/tunnel
+./sqldb-standby-conf tmp/sqldb2 127.0.0.1:5533 127.0.0.1:8603 localhost 5432 8502
+../../components/sqldb/pgsql-start tmp/sqldb2
+../../modules/http/httpd-start tmp/sqldb2
+
+../../modules/http/tunnel-ssl-conf tmp/tunnel 5434 localhost 563 5534
+../../modules/http/tunnel-ssl-conf tmp/tunnel 8504 localhost 563 8604
+../../modules/http/httpd-restart tmp/tunnel
+./sqldb-standby-conf tmp/sqldb3 127.0.0.1:5534 127.0.0.1:8604 localhost 5432 8502
+../../components/sqldb/pgsql-start tmp/sqldb3
+../../modules/http/httpd-start tmp/sqldb3
 
 # Start three app servers
 ./server-ssl-conf tmp/server1 8101 8441
 ../../modules/http/httpd-start tmp/server1
+sleep 1
 
 ./server-ssl-conf tmp/server2 8102 8442
 ../../modules/http/httpd-start tmp/server2
+sleep 1
 
 ./server-ssl-conf tmp/server3 8103 8443
 ../../modules/http/httpd-start tmp/server3
+sleep 1
 
 # Start two proxy balancers
 ./proxy-ssl-conf tmp/proxy1 8091 8093
@@ -60,11 +105,15 @@
 ../../modules/http/proxy-ssl-member-conf tmp/proxy2 localhost 8443
 ../../modules/http/httpd-start tmp/proxy2
 
-# Redirect traffic from port 80 to 8091 and use proxy1
+# Redirect traffic from ports 80 and 443 to proxy1
 #../../ubuntu/ip-redirect-all 80 8091
 #../../ubuntu/ip-redirect-all 443 8093
 
-# Redirect traffic from port 80 to 8092 and use proxy2
+# Redirect traffic from ports 80 and 443 to proxy2
 #../../ubuntu/ip-redirect-all 80 8092
 #../../ubuntu/ip-redirect-all 443 8094
 
+# Redirect traffic from ports 119 and 563 to tunnel
+#../../ubuntu/ip-redirect-all 119 8119
+#../../ubuntu/ip-redirect-all 563 8563
+

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/ssl-stop
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/ssl-stop?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/ssl-stop (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/ssl-stop Thu Aug 19 04:10:43 2010
@@ -17,6 +17,8 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
+set -x
+
 ../../modules/http/httpd-stop tmp/server1
 ../../modules/http/httpd-stop tmp/server2
 ../../modules/http/httpd-stop tmp/server3
@@ -28,4 +30,15 @@
 ../../components/cache/memcached-stop 127.0.0.1:11412
 ../../components/cache/memcached-stop 127.0.0.1:11413
 
-../../modules/http/httpd-stop tmp/tunnel1
+../../components/sqldb/pgsql-stop tmp/sqldb3
+../../modules/http/httpd-stop tmp/sqldb3
+../../components/sqldb/pgsql-stop tmp/sqldb2
+../../modules/http/httpd-stop tmp/sqldb2
+../../components/sqldb/pgsql-stop tmp/sqldb1
+../../modules/http/httpd-stop tmp/sqldb1
+
+../../modules/http/httpd-stop tmp/tunnel
+
+../../components/log/scribed-client-stop tmp/monitor
+../../components/log/scribed-central-stop tmp/monitor
+../../components/log/scribe-tail-stop tmp

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/start
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/start?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/start (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/start Thu Aug 19 04:10:43 2010
@@ -17,28 +17,44 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
+set -x
+
+# Start scribe logging
+../../components/log/scribed-central-conf tmp/monitor
+../../components/log/scribed-client-conf tmp/monitor localhost
+../../components/log/scribed-central-start tmp/monitor
+../../components/log/scribed-client-start tmp/monitor
+sleep 1
+
 # Start three memcached servers
 ../../components/cache/memcached-start 11211
 ../../components/cache/memcached-start 11212
 ../../components/cache/memcached-start 11213
 
-# Start three app servers, with a master database and
-# two hot standby databases
+# Start a master and two hot standby databases
+./sqldb-master-conf tmp/sqldb1 5432 8502
+../../components/sqldb/pgsql-start tmp/sqldb1
+../../modules/http/httpd-start tmp/sqldb1
+sleep 1
+
+./sqldb-standby-conf tmp/sqldb2 5433 8503 localhost 5432 8502
+../../components/sqldb/pgsql-start tmp/sqldb2
+../../modules/http/httpd-start tmp/sqldb2
+
+./sqldb-standby-conf tmp/sqldb3 5434 8504 localhost 5432 8502
+../../components/sqldb/pgsql-start tmp/sqldb3
+../../modules/http/httpd-start tmp/sqldb3
+
+# Start three app servers
 ./server-conf tmp/server1 8101
-./sqldb-master-conf tmp/server1 5432
-../../components/sqldb/pgsql-start tmp/server1
 ../../modules/http/httpd-start tmp/server1
 sleep 1
 
 ./server-conf tmp/server2 8102
-./sqldb-standby-conf tmp/server2 localhost 5432 8101 5433
-../../components/sqldb/pgsql-start tmp/server2
 ../../modules/http/httpd-start tmp/server2
 sleep 1
 
 ./server-conf tmp/server3 8103
-./sqldb-standby-conf tmp/server3 localhost 5432 8101 5434
-../../components/sqldb/pgsql-start tmp/server3
 ../../modules/http/httpd-start tmp/server3
 sleep 1
 
@@ -55,9 +71,9 @@ sleep 1
 ../../modules/http/proxy-member-conf tmp/proxy2 localhost 8103
 ../../modules/http/httpd-start tmp/proxy2
 
-# Redirect traffic from port 80 to 8091 and use proxy1
+# Redirect traffic from port 80 to proxy1
 #../../ubuntu/ip-redirect-all 80 8091
 
-# Redirect traffic from port 80 to 8092 and use proxy2
+# Redirect traffic from port 80 to proxy2
 #../../ubuntu/ip-redirect-all 80 8092
 

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/stop
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/stop?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/stop (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/stop Thu Aug 19 04:10:43 2010
@@ -17,6 +17,8 @@
 #  specific language governing permissions and limitations
 #  under the License.
 
+set -x
+
 ../../components/sqldb/pgsql-stop tmp/server2
 ../../components/sqldb/pgsql-stop tmp/server3
 ../../components/sqldb/pgsql-stop tmp/server1
@@ -32,3 +34,6 @@
 ../../components/cache/memcached-stop 11212
 ../../components/cache/memcached-stop 11213
 
+../../components/log/scribed-client-stop tmp/monitor
+../../components/log/scribed-central-stop tmp/monitor
+../../components/log/scribe-tail-stop tmp

Modified: tuscany/sca-cpp/trunk/samples/store-cluster/tunnel-ssl-conf
URL: http://svn.apache.org/viewvc/tuscany/sca-cpp/trunk/samples/store-cluster/tunnel-ssl-conf?rev=987012&r1=987011&r2=987012&view=diff
==============================================================================
--- tuscany/sca-cpp/trunk/samples/store-cluster/tunnel-ssl-conf (original)
+++ tuscany/sca-cpp/trunk/samples/store-cluster/tunnel-ssl-conf Thu Aug 19 04:10:43 2010
@@ -18,16 +18,11 @@
 #  under the License.
 
 root=$1
+port=$2
+sslport=$3
 
-# Configure SSL tunnels to the memcached servers
-../../modules/http/httpd-conf $root localhost 127.0.0.1:11210 htdocs
+# Configure an SSL-enabled tunnel server
+../../modules/http/httpd-conf $root sca-store.com $port/119 $root/htdocs
 tar -C tmp/ssl -c `../../modules/http/ssl-cert-find tmp/ssl` | tar -C $root -x
-../../modules/http/tunnel-ssl-conf $root 11211 localhost 8441 11411
-../../modules/http/tunnel-ssl-conf $root 11212 localhost 8442 11412
-../../modules/http/tunnel-ssl-conf $root 11213 localhost 8443 11413
-
-# Configure SSL tunnels to the postgresql servers
-../../modules/http/tunnel-ssl-conf $root 5532 localhost 8441 5432
-../../modules/http/tunnel-ssl-conf $root 5533 localhost 8441 5433
-../../modules/http/tunnel-ssl-conf $root 5534 localhost 8441 5433
+../../modules/http/httpd-ssl-conf $root $sslport/563