http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/monitor/linux/reqnotify.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/reqnotify.cxx 
b/core/sqf/monitor/linux/reqnotify.cxx
index f5f7579..6dc43fc 100644
--- a/core/sqf/monitor/linux/reqnotify.cxx
+++ b/core/sqf/monitor/linux/reqnotify.cxx
@@ -28,10 +28,15 @@
 #include "montrace.h"
 #include "monsonar.h"
 #include "monlogging.h"
+#include "ptpclient.h"
 
 extern CMonStats *MonStats;
 extern CNode *MyNode;
 extern CNodeContainer *Nodes;
+extern bool NameServerEnabled;
+extern CPtpClient *PtpClient;
+
+extern _TM_Txid_External invalid_trans( void );
 
 CExtNotifyReq::CExtNotifyReq (reqQueueMsg_t msgType, int pid,
                               struct message_def *msg )
@@ -125,35 +130,31 @@ void CExtNotifyReq::performRequest()
 
     if ( requester )
     {
-        CProcess *sourceProcess = NULL;
-
-        if ( processName_.size() )
-        { // find by name (check node state, don't check process state, not 
backup)
-            if (trace_settings & TRACE_REQUEST)
-                trace_printf("%s@%d" " - Finding sourceProcess 
(name,verifier)" "\n", method_name, __LINE__);
-            sourceProcess = Nodes->GetProcess( processName_.c_str()
-                                             , verifier_
-                                             , true, false, false );
-        }     
-        else
-        { // find by nid (check node state, don't check process state, backup 
is Ok)
-            if (trace_settings & TRACE_REQUEST)
-                trace_printf("%s@%d" " - Finding sourceProcess 
(nid,pid,verifier)" "\n", method_name, __LINE__);
-            sourceProcess = Nodes->GetProcess( nid_
-                                             , pid
-                                             , verifier_
-                                             , true, false, true );
-        }
-        
+        CProcess *sourceProcess = requester;
         if ( sourceProcess )
         {
             if (trace_settings & TRACE_REQUEST)
-                trace_printf("%s@%d - Found sourceProcess" "\n", method_name, 
__LINE__);
+            {
+                trace_printf( "%s@%d - Found sourceProcess %s (%d,%d:%d), 
clone=%d\n"
+                            , method_name, __LINE__
+                            , sourceProcess->GetName()
+                            , sourceProcess->GetNid()
+                            , sourceProcess->GetPid()
+                            , sourceProcess->GetVerifier()
+                            , sourceProcess->IsClone() );
+            }
         }
         else
         {
             if (trace_settings & TRACE_REQUEST)
-                trace_printf("%s@%d - Can't find sourceProcess\n", 
method_name, __LINE__);
+            {
+                trace_printf( "%s@%d - Can't find sourceProcess %s 
(%d,%d:%d)\n"
+                            , method_name, __LINE__
+                            , processName_.c_str()
+                            , nid_
+                            , pid
+                            , verifier_ );
+            }
         }
 
         if ( msg_->u.request.u.notify.cancel )
@@ -170,14 +171,15 @@ void CExtNotifyReq::performRequest()
         {
             CProcess *targetProcess = NULL;
 
-
             if ( target_process_name.size() )
             { // find by name (check node state, don't check process state, 
not backup)
                 if (trace_settings & TRACE_REQUEST)
+                {
                     trace_printf( "%s@%d" " - Finding targetProcess (%s:%d)" 
"\n"
                                 , method_name, __LINE__
                                 , target_process_name.c_str()
                                 , target_verifier );
+                }
                 targetProcess = Nodes->GetProcess( target_process_name.c_str()
                                                  , target_verifier
                                                  , true, false, false );
@@ -185,11 +187,13 @@ void CExtNotifyReq::performRequest()
             else
             { // find by nid (check node state, don't check process state, 
backup is Ok)
                 if (trace_settings & TRACE_REQUEST)
+                {
                     trace_printf( "%s@%d" " - Finding targetProcess 
(%d,%d:%d)\n"
                                 , method_name, __LINE__
                                 , target_nid
                                 , target_pid
                                 , target_verifier );
+                }
                 targetProcess = Nodes->GetProcess( target_nid
                                                  , target_pid
                                                  , target_verifier
@@ -199,12 +203,73 @@ void CExtNotifyReq::performRequest()
             if ( targetProcess )
             {
                 if (trace_settings & TRACE_REQUEST)
-                    trace_printf("%s@%d" " - Found targetProcess" "\n", 
method_name, __LINE__);
+                {
+                    trace_printf( "%s@%d - Found targetProcess %s (%d,%d:%d), 
clone=%d\n"
+                                , method_name, __LINE__
+                                , targetProcess->GetName()
+                                , targetProcess->GetNid()
+                                , targetProcess->GetPid()
+                                , targetProcess->GetVerifier()
+                                , targetProcess->IsClone() );
+                }
             }
             else
             {
-                if (trace_settings & TRACE_REQUEST)
-                    trace_printf("%s@%d - Can't find targetProcess\n", 
method_name, __LINE__);
+                if (!NameServerEnabled)
+                {
+                    if (trace_settings & TRACE_REQUEST)
+                    {
+                        trace_printf("%s@%d - Can't find targetProcess\n", 
method_name, __LINE__);
+                    }
+                }
+                else
+                {
+                    if ( target_process_name.size() )
+                    { // Name Server find by name:verifier
+                        if (trace_settings & TRACE_REQUEST)
+                        {
+                            trace_printf( "%s@%d" " - Getting targetProcess 
from Name Server (%s:%d)" "\n"
+                                        , method_name, __LINE__
+                                        , target_process_name.c_str()
+                                        , target_verifier );
+                        }
+                        targetProcess = Nodes->GetProcessNs( 
target_process_name.c_str()
+                                                           , target_verifier );
+                    }     
+                    else
+                    { // Name Server find by nid,pid:verifier
+                        if (trace_settings & TRACE_REQUEST)
+                        {
+                            trace_printf( "%s@%d" " - Getting targetProcess 
from Name Server (%d,%d:%d)\n"
+                                        , method_name, __LINE__
+                                        , target_nid
+                                        , target_pid
+                                        , target_verifier );
+                        }
+                        targetProcess = Nodes->GetProcessNs( target_nid
+                                                           , target_pid
+                                                           , target_verifier );
+                    }
+                    if (targetProcess)
+                    {
+                        if (trace_settings & TRACE_REQUEST)
+                            trace_printf( "%s@%d - Found targetProcess %s 
(%d,%d:%d), clone=%d\n"
+                                        , method_name, __LINE__
+                                        , targetProcess->GetName()
+                                        , targetProcess->GetNid()
+                                        , targetProcess->GetPid()
+                                        , targetProcess->GetVerifier()
+                                        , targetProcess->IsClone() );
+                    }
+                    else
+                    {
+                        trace_printf( "%s@%d" " - Can't find targetProcess 
(%d,%d:%d)\n"
+                                    , method_name, __LINE__
+                                    , target_nid
+                                    , target_pid
+                                    , target_verifier );
+                    }
+                }
             }
             
             if ( targetProcess )
@@ -221,8 +286,10 @@ void CExtNotifyReq::performRequest()
                                     target_verifier,
                                     targetProcess->GetVerifier());
                     }            
-                } else
+                } 
+                else
                 {
+#if 0
                     if ( msg_->u.request.u.notify.cancel )
                     {   // Unregister interest in death of target process 
                         status = targetProcess->CancelDeathNotification( nid_
@@ -230,8 +297,32 @@ void CExtNotifyReq::performRequest()
                                                                        , 
verifier_
                                                                        , 
msg_->u.request.u.notify.trans_id);
                     }
-                    else if ( sourceProcess)
+                    else if (sourceProcess)
+#endif
+                    if (sourceProcess)
                     {   // Register interest in death of target process 
+                        if (NameServerEnabled && targetProcess->IsClone())
+                        {
+                            CLNode *targetLNode = Nodes->GetLNode( 
targetProcess->GetNid() );
+                        
+                            _TM_Txid_External transId = 
msg_->u.request.u.notify.trans_id;
+                            int rc = -1;
+
+                            // Forward the process cancel death notification 
to the target node
+                            rc = PtpClient->ProcessNotify( 
sourceProcess->GetNid()
+                                                         , 
sourceProcess->GetPid()
+                                                         , 
sourceProcess->GetVerifier()
+                                                         , transId
+                                                         , false
+                                                         , targetProcess
+                                                         , 
targetLNode->GetNid()
+                                                         , 
targetLNode->GetNode()->GetName() );
+                            if (rc)
+                            {
+                                // TODO: Error handling
+                            }
+                        }
+                        
                         sourceProcess->procExitReg( targetProcess,
                                                     
msg_->u.request.u.notify.trans_id);
                         status = SUCCESS;
@@ -241,7 +332,9 @@ void CExtNotifyReq::performRequest()
             else
             {
                 if (trace_settings & TRACE_REQUEST)
+                {
                     trace_printf("%s@%d" " - Can't find targerProcess" "\n", 
method_name, __LINE__);
+                }
             }
         }
 
@@ -254,13 +347,17 @@ void CExtNotifyReq::performRequest()
         {
             msg_->u.reply.u.generic.return_code = MPI_SUCCESS;
             if (trace_settings & TRACE_REQUEST)
+            {
                 trace_printf("%s@%d" " - Successful" "\n", method_name, 
__LINE__);
+            }
         }
         else
         {
             msg_->u.reply.u.generic.return_code = MPI_ERR_NAME;
             if (trace_settings & TRACE_REQUEST)
+            {
                 trace_printf("%s@%d" " - Unsuccessful" "\n", method_name, 
__LINE__);
+            }
         }
 
         // Send reply to requester
@@ -270,7 +367,9 @@ void CExtNotifyReq::performRequest()
     {   // Reply to requester so it can release the buffer.  
         // We don't know about this process.
         if (trace_settings & (TRACE_REQUEST | TRACE_PROCESS))
+        {
             trace_printf("%s@%d - Can't find requester, rc=%d\n", method_name, 
__LINE__, MPI_ERR_NAME);
+        }
         errorReply( MPI_ERR_EXITED );
     }
 

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/monitor/linux/reqopen.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/reqopen.cxx 
b/core/sqf/monitor/linux/reqopen.cxx
index 7a0ac04..88022b9 100644
--- a/core/sqf/monitor/linux/reqopen.cxx
+++ b/core/sqf/monitor/linux/reqopen.cxx
@@ -78,6 +78,10 @@ void CExtOpenReq::performRequest()
     const char method_name[] = "CExtOpenReq::performRequest";
     TRACE_ENTRY;
 
+    int target_nid = -1;
+    int target_pid = -1;
+    Verifier_t target_verifier = -1;
+    string target_process_name;
 
     // Record statistics (sonar counters)
     if (sonar_verify_state(SONAR_ENABLED | SONAR_MONITOR_ENABLED))
@@ -103,20 +107,63 @@ void CExtOpenReq::performRequest()
     bool status;
     CProcess *opener = ((CReqResourceProc *) resources_[0])->getProcess();
     CProcess *opened = ((CReqResourceProc *) resources_[1])->getProcess();
-    
-//TRK-TODO 
 
+    
     // check for the process object as it could have been deleted by the time 
this request gets to perform.
     if (opened == NULL) 
     {
-        if (trace_settings & (TRACE_REQUEST | TRACE_PROCESS))
+        if (!NameServerEnabled)
         {
-              trace_printf("%s@%d request #%ld: Open process failed. Process 
already exited.",
-                       method_name, __LINE__, id_);
+            if (trace_settings & (TRACE_REQUEST | TRACE_PROCESS))
+            {
+                  trace_printf("%s@%d request #%ld: Open process failed. 
Process already exited.",
+                           method_name, __LINE__, id_);
+            }
+            errorReply( MPI_ERR_NAME );
+            TRACE_EXIT;
+            return;
+        }
+        else
+        {
+            target_nid = msg_->u.request.u.open.target_nid;
+            target_pid = msg_->u.request.u.open.target_pid;
+            target_verifier  = msg_->u.request.u.open.target_verifier;
+            target_process_name = (const char *) 
msg_->u.request.u.open.target_process_name;
+
+            if ( target_process_name.size() )
+            { // Name Server find by name:verifier
+                if (trace_settings & TRACE_REQUEST)
+                    trace_printf( "%s@%d" " - Getting targetProcess from Name 
Server (%s:%d)" "\n"
+                                , method_name, __LINE__
+                                , target_process_name.c_str()
+                                , target_verifier );
+                opened = Nodes->GetProcessNs( target_process_name.c_str()
+                                            , target_verifier );
+            }     
+            else
+            { // Name Server find by nid,pid:verifier
+                if (trace_settings & TRACE_REQUEST)
+                    trace_printf( "%s@%d" " - Getting targetProcess from Name 
Server (%d,%d:%d)\n"
+                                , method_name, __LINE__
+                                , target_nid
+                                , target_pid
+                                , target_verifier );
+                opened = Nodes->GetProcessNs( target_nid
+                                            , target_pid
+                                            , target_verifier );
+            }
+            if (opened == NULL) 
+            {
+                if (trace_settings & (TRACE_REQUEST | TRACE_PROCESS))
+                {
+                      trace_printf("%s@%d request #%ld: Open process failed. 
Process already exited.",
+                               method_name, __LINE__, id_);
+                }
+                errorReply( MPI_ERR_NAME );
+                TRACE_EXIT;
+                return;
+            }
         }
-        errorReply( MPI_ERR_NAME );
-        TRACE_EXIT;
-        return;
     }
 
     // check the verifier
@@ -155,7 +202,16 @@ void CExtOpenReq::performRequest()
         msg_->u.reply.u.open.type = opened->GetType();
         msg_->u.reply.u.open.return_code = MPI_SUCCESS;
         if (trace_settings & (TRACE_REQUEST | TRACE_PROCESS))
-            trace_printf("%s@%d - Successful\n", method_name, __LINE__);
+        {
+            trace_printf( "%s@%d - Open successful, opened %s (%d, %d:%d), "
+                          "port=%s\n"
+                        , method_name, __LINE__
+                        , opened->GetName()
+                        , msg_->u.reply.u.open.nid
+                        , msg_->u.reply.u.open.pid
+                        , msg_->u.reply.u.open.verifier
+                        , msg_->u.reply.u.open.port );
+        }
 
         // Send reply to requester
         lioreply(msg_, pid_);

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/monitor/linux/reqprocinfo.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/reqprocinfo.cxx 
b/core/sqf/monitor/linux/reqprocinfo.cxx
index 8ff457c..22392bf 100644
--- a/core/sqf/monitor/linux/reqprocinfo.cxx
+++ b/core/sqf/monitor/linux/reqprocinfo.cxx
@@ -293,12 +293,19 @@ void CExtProcInfoReq::performRequest()
     TRACE_ENTRY;
 
 #ifndef NAMESERVER_PROCESS
-    if ( NameServerEnabled )
+    bool    getMonitorInfo = false;
+    if (strcasecmp(msg_->u.request.u.process_info.target_process_name, 
"MONITOR") == 0)
+    {
+        getMonitorInfo = true;
+        msg_->u.request.u.process_info.target_process_name[0] = 0;
+    }
+
+    if ( NameServerEnabled && !getMonitorInfo )
         NameServer->ProcessInfo(msg_); // in reqQueue thread (CExternalReq)
 #endif
 
 #ifndef NAMESERVER_PROCESS
-    if ( NameServerEnabled )
+    if ( NameServerEnabled && !getMonitorInfo )
     {
         // Send reply to requester
         lioreply(msg_, pid_);
@@ -359,7 +366,11 @@ void CExtProcInfoReq::performRequest()
         }
 #endif
 
+#ifdef NAMESERVER_PROCESS
+        if ( requester || ( nid_ == -1 && pid_ == -1 && verifier_ == -1 ) )
+#else
         if ( requester )
+#endif
         {
             msg_->u.reply.u.process_info.more_data = false;
 
@@ -371,16 +382,16 @@ void CExtProcInfoReq::performRequest()
                     trace_printf( "%s@%d request #%ld: ProcessInfo from %s 
(%d, %d:%d) "
                                   "by name for %s:%d, process type=%d\n"
                                 , method_name, __LINE__, id_
-                                , requester->GetName()
-                                , requester->GetNid()
-                                , requester->GetPid()
-                                , requester->GetVerifier()
+                                , requester?requester->GetName():""
+                                , requester?requester->GetNid():-1
+                                , requester?requester->GetPid():-1
+                                , requester?requester->GetVerifier():-1
                                 , target_process_name.c_str(), target_verifier
                                 , msg_->u.request.u.process_info.type);
                 }
 
                 //if requester is requesting info for itself, return local 
process info
-                if ( strcmp( requester->GetName()
+                if ( requester && strcmp( requester->GetName()
                            , 
msg_->u.request.u.process_info.target_process_name) == 0 )
                 {
                     ProcessInfo_CopyData(requester,
@@ -464,7 +475,8 @@ void CExtProcInfoReq::performRequest()
                 else
                 {
                     // get info for single process in node
-                    if ((requester->GetType() == ProcessType_TSE ||
+                    if (requester &&
+                        (requester->GetType() == ProcessType_TSE ||
                          requester->GetType() == ProcessType_ASE ||
                          requester->GetType() == ProcessType_AMP)  &&
                         (requester->GetNid() == target_nid &&

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/monitor/linux/reqqueue.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/reqqueue.cxx 
b/core/sqf/monitor/linux/reqqueue.cxx
index 12e1f8e..5c0c77f 100644
--- a/core/sqf/monitor/linux/reqqueue.cxx
+++ b/core/sqf/monitor/linux/reqqueue.cxx
@@ -42,7 +42,6 @@
 #ifndef NAMESERVER_PROCESS
 #include "nameserver.h"
 #include "ptpclient.h"
-extern CPtpClient *PtpClient;
 #endif
 
 extern int MyPNID;
@@ -61,6 +60,7 @@ extern CHealthCheck HealthCheck;
 extern char *ErrorMsg (int error_code);
 #else
 extern bool NameServerEnabled;
+extern CPtpClient *PtpClient;
 extern CNameServer *NameServer;
 extern CNameServerConfigContainer *NameServerConfig;
 #endif
@@ -369,7 +369,7 @@ void CRequest::evalReqPerformance( void )
                 "time=%ld.%06ld, total time=%ld.%06ld {%s}\n", method_name,
                 performTime.tv_sec, performTime.tv_nsec,
                 totalTime.tv_sec, totalTime.tv_nsec, requestString());
-        mon_log_write(MON_REQQUEUE_PREP_EXT_REQ_1, SQ_LOG_ERR, buf);
+        mon_log_write(MON_REQ_EVALREQ_PERFORMANCE_1, SQ_LOG_ERR, buf);
     }
 }
 
@@ -580,6 +580,7 @@ void CInternalReq::errorReply( int  )
 {
 }
 
+#ifndef NAMESERVER_PROCESS
 CIntCloneProcReq::CIntCloneProcReq( bool backup, bool unhooked, bool 
eventMessages, bool systemMessages, int nid, PROCESSTYPE type, int priority, 
int parentNid, int parentPid, int parentVerifier, int osPid, int verifier, 
pid_t priorPid, int persistentRetries, int  argc, struct timespec creationTime, 
strId_t pathStrId, strId_t ldpathStrId, strId_t programStrId, int nameLen, int 
portLen, int infileLen, int outfileLen, int argvLen, const char * stringData, 
int origPNidNs)
     : CInternalReq(),
       backup_( backup ),
@@ -733,7 +734,7 @@ void CIntCloneProcReq::performRequest()
                          "startup successfully.\n",
                          method_name, process->GetName(), process->GetNid(),
                          process->GetPid());
-                mon_log_write(MON_PROCESSCONT_EXITPROCESS_2, SQ_LOG_ERR, buf);
+                mon_log_write(MON_INTREQ_CLONEPROC_1, SQ_LOG_ERR, buf);
             }
 
             if (parent && process->IsBackup())
@@ -793,7 +794,187 @@ void CIntCloneProcReq::performRequest()
 
     TRACE_EXIT;
 }
+#endif
+
+
+#ifdef NAMESERVER_PROCESS
+CIntCloneProcNsReq::CIntCloneProcNsReq( bool backup
+                                      , bool unhooked
+                                      , bool eventMessages
+                                      , bool systemMessages
+                                      , int nid
+                                      , PROCESSTYPE type
+                                      , int priority
+                                      , int parentNid
+                                      , int parentPid
+                                      , int parentVerifier
+                                      , int osPid
+                                      , int verifier
+                                      , pid_t priorPid
+                                      , int persistentRetries
+                                      , int  argc
+                                      , struct timespec creationTime
+                                      , strId_t pathStrId
+                                      , strId_t ldpathStrId
+                                      , strId_t programStrId
+                                      , int nameLen
+                                      , int portLen
+                                      , int infileLen
+                                      , int outfileLen
+                                      , int argvLen
+                                      , const char * stringData
+                                      , int origPNidNs)
+                   : CInternalReq()
+                   , backup_( backup )
+                   , unhooked_( unhooked )
+                   , eventMessages_( eventMessages )
+                   , systemMessages_( systemMessages )
+                   , nid_( nid )
+                   , type_( type )
+                   , priority_( priority )
+                   , parentNid_( parentNid )
+                   , parentPid_( parentPid )
+                   , parentVerifier_( parentVerifier )
+                   , osPid_( osPid )
+                   , verifier_( verifier )
+                   , priorPid_( priorPid )
+                   , persistentRetries_( persistentRetries )
+                   , argc_( argc )
+                   , pathStrId_( pathStrId )
+                   , ldpathStrId_( ldpathStrId )
+                   , programStrId_( programStrId )
+                   , nameLen_( nameLen )
+                   , portLen_( portLen )
+                   , infileLen_( infileLen )
+                   , outfileLen_( outfileLen )
+                   , argvLen_( argvLen )
+                   , origPNidNs_( origPNidNs )
+{
+    // Add eyecatcher sequence as a debugging aid
+    memcpy(&eyecatcher_, "RQIL", 4);
+
+    creationTime_.tv_sec = creationTime.tv_sec;
+    creationTime_.tv_nsec = creationTime.tv_nsec;
+
+    int stringDataLen = nameLen_ + portLen_+ infileLen_ + outfileLen_
+                      + argvLen_;
+    stringData_ = new char [stringDataLen];
+    memcpy ( stringData_, stringData, stringDataLen );
+}
+
+void CIntCloneProcNsReq::populateRequestString( void )
+{
+    char strBuf[MON_STRING_BUF_SIZE/2];
+    sprintf( strBuf, "IntReq(%s) req #=%ld (name=%s/nid=%d/pid=%d) 
parent(nid=%d/pid=%d)"
+                   , CReqQueue::intReqType[InternalType_Clone]
+                   , getId(),
+             &stringData_[0], // process name
+             nid_, osPid_, parentNid_, parentPid_ );
+    requestString_.assign( strBuf );
+}
 
+CIntCloneProcNsReq::~CIntCloneProcNsReq()
+{
+    // Alter eyecatcher sequence as a debugging aid to identify deleted object
+    memcpy(&eyecatcher_, "rqil", 4);
+
+    delete [] stringData_;
+}
+
+void CIntCloneProcNsReq::performRequest()
+{
+    const char method_name[] = "CIntCloneProcNsReq::performRequest";
+    TRACE_ENTRY;
+
+    CProcess *process;
+
+    // Trace info about request
+    if (trace_settings & (TRACE_REQUEST | TRACE_PROCESS))
+        trace_printf("%s@%d \n", method_name, __LINE__);
+
+    // check to see if we pre-cloned this process for startup in a remote node
+    process = Nodes->GetLNode (nid_)->
+        CompleteProcessStartup(&stringData_[0], // process name
+                               &stringData_[nameLen_],  // port,
+                               osPid_,
+                               eventMessages_,
+                               systemMessages_,
+                               &creationTime_,
+                               origPNidNs_);
+    if (process)
+    {
+        if (trace_settings & (TRACE_REQUEST | TRACE_PROCESS))
+        {
+            trace_printf("%s@%d - Registered process %s (%d, %d:%d), "
+                         "port=%s, origPNidNs=%d, MyPNID=%d\n", method_name, 
__LINE__,
+                         process->GetName(), process->GetNid(),
+                         process->GetPid(), process->GetVerifier(),
+                         process->GetPort(), process->GetOrigPNidNs(), MyPNID 
);
+        }
+
+        process->SetVerifier(verifier_);
+        process->SetParentVerifier(parentVerifier_);
+
+        // Send reply to originating monitor
+        if ( MyPNID == process->GetOrigPNidNs() )
+        {
+            struct message_def *msg = process->GetMonContext();
+            msg->u.reply.type = ReplyType_NewProcessNs;
+            msg->noreply = false;
+            msg->reply_tag = process->GetReplyTag();
+            msg->u.reply.u.new_process_ns.nid = process->GetNid();
+            msg->u.reply.u.new_process_ns.pid = process->GetPid();
+            msg->u.reply.u.new_process_ns.verifier = process->GetReplyTag();
+            strncpy(msg->u.reply.u.new_process_ns.process_name, 
process->GetName(), MAX_PROCESS_NAME);
+            msg->u.reply.u.new_process_ns.return_code = MPI_SUCCESS;
+
+            int sockFd = process->GetMonSockFd();
+            // Send reply to requester
+            monreply( msg, sockFd );
+        }
+        
+        // There might be a request waiting for the process creation to
+        // complete so have worker check pending request queue.
+        ReqQueue.nudgeWorker();
+    }
+    else
+    {
+        // This is a new clone process that needs to be created 
+        // mirroring another node
+        CNode * node = Nodes->GetLNode (nid_)->GetNode();
+        CProcess * process;
+        process = node->CloneProcess (nid_,
+                            type_,
+                            priority_,
+                            backup_,
+                            unhooked_,
+                            &stringData_[0], // process name
+                            &stringData_[nameLen_],  // port
+                            osPid_,
+                            verifier_,
+                            parentNid_,
+                            parentPid_,
+                            parentVerifier_,
+                            eventMessages_,
+                            systemMessages_,
+                            pathStrId_,
+                            ldpathStrId_,
+                            programStrId_,
+                            &stringData_[nameLen_ + portLen_],  // infile
+                            &stringData_[nameLen_ + portLen_ + infileLen_], // 
outfile
+                            &creationTime_,
+                            origPNidNs_);
+        if ( process )
+        {
+            process->userArgs ( argc_, argvLen_,
+                                &stringData_[nameLen_ + portLen_
+                                             +infileLen_ + outfileLen_] );
+        }
+    }
+
+    TRACE_EXIT;
+}
+#endif
 
 
 #ifndef NAMESERVER_PROCESS
@@ -921,7 +1102,9 @@ void CIntExitReq::performRequest()
             lnode->GetNode()->DelFromNameMap ( process );
             lnode->GetNode()->DelFromPidMap ( process );
 
-#ifndef NAMESERVER_PROCESS
+#ifdef NAMESERVER_PROCESS
+            lnode->GetNode()->DeleteFromList( process );
+#else
             lnode->GetNode()->Exit_Process (process, abended_, -1);
 #endif
         }
@@ -931,7 +1114,7 @@ void CIntExitReq::performRequest()
         char buf[MON_STRING_BUF_SIZE];
         sprintf(buf, "[%s], Can't find process %s (%d, %d) for processing "
                 "exit.\n", method_name, name_, nid_, pid_);
-        mon_log_write(MON_CLUSTER_HANDLEOTHERNODE_5, SQ_LOG_ERR, buf); 
+        mon_log_write(MON_INTREQ_EXIT_1, SQ_LOG_ERR, buf); 
     }
 
     TRACE_EXIT;
@@ -1162,6 +1345,23 @@ void CIntNewProcReq::performRequest()
                 }
             }
         }
+#ifndef NAMESERVER_PROCESS
+        else
+        {
+            if (NameServerEnabled)
+            { // Name Server find by nid,pid:verifier
+                if (trace_settings & TRACE_REQUEST)
+                    trace_printf( "%s@%d" " - Getting parent process from Name 
Server (%d,%d:%d)\n"
+                                , method_name, __LINE__
+                                , parentNid_
+                                , parentPid_
+                                , parentVerifier_ );
+                parentProcess = Nodes->GetProcessNs( parentNid_
+                                                   , parentPid_
+                                                   , parentVerifier_ );
+            }
+        }
+#endif
     }
 
     if (parentProcess || unhooked_ )
@@ -1208,16 +1408,18 @@ void CIntNewProcReq::performRequest()
                     MyNode->AddToNameMap( newProcess );
                     MyNode->AddToPidMap( newProcess->GetPid(),  newProcess );
 
-                    // Successfully forked process.  Replicate actual process
-                    // id and process name.
-                    
-//TRK-TODO 
-              /*      if (NameServerEnabled)
+                    // Successfully forked process
+                    if (NameServerEnabled)
                     {
-                        PtpClient->ProcessInit(newProcess, reqTag_, 0, 
parentNid_, lnode->GetNode()->GetName());
+                        // Send actual pid and process name back to parent
+                        PtpClient->ProcessInit( newProcess
+                                              , reqTag_
+                                              , 0
+                                              , parentNid_ );
                     }
                     else
-             */       {                    
+                    {                    
+                        // Replicate actual pid and process name
                         CReplProcInit *repl
                             = new CReplProcInit(newProcess, reqTag_, 0, 
parentNid_);
                         Replicator.addItem(repl);
@@ -1230,14 +1432,23 @@ void CIntNewProcReq::performRequest()
                 }
             }
 
-//TRK-TODO
             if (  newProcess == NULL )
             {  
                 // Process creation failure, relay error code to node
                 // that requested process creation.
-                CReplProcInit *repl = new CReplProcInit(newProcess, reqTag_,
-                                                        result, parentNid_);
-                Replicator.addItem(repl);
+                if (NameServerEnabled)
+                {
+                    PtpClient->ProcessInit( newProcess
+                                          , reqTag_
+                                          , result
+                                          , parentNid_ );
+                }
+                else
+                {
+                    CReplProcInit *repl = new CReplProcInit(newProcess, 
reqTag_,
+                                                            result, 
parentNid_);
+                    Replicator.addItem(repl);
+                }
             }
 #endif
         }
@@ -1248,13 +1459,300 @@ void CIntNewProcReq::performRequest()
         sprintf(buf, "[%s], Can't find parent process nid=%d, pid=%d "
                 "for process create.\n", method_name, 
                 parentNid_, parentPid_ );
-        mon_log_write(MON_CLUSTER_HANDLEOTHERNODE_10, SQ_LOG_ERR, buf); 
+        mon_log_write(MON_INTREQ_NEWPROC_1, SQ_LOG_ERR, buf); 
     }
 
     TRACE_EXIT;
 }
 
 #ifndef NAMESERVER_PROCESS
+CIntNotifyReq::CIntNotifyReq( struct notify_def *notifyDef ) 
+             : CInternalReq()
+             , nid_( notifyDef->nid )
+             , pid_( notifyDef->pid )
+             , verifier_( notifyDef->verifier )
+             , canceled_( notifyDef->canceled )
+             , targetNid_( notifyDef->target_nid )
+             , targetPid_( notifyDef->target_pid )
+             , targetVerifier_( notifyDef->target_verifier )
+             , transId_( notifyDef->trans_id )
+{
+    // Add eyecatcher sequence as a debugging aid
+    memcpy(&eyecatcher_, "RQI1", 4);
+}
+
+CIntNotifyReq::~CIntNotifyReq()
+{
+    // Alter eyecatcher sequence as a debugging aid to identify deleted object
+    memcpy(&eyecatcher_, "rqi1", 4);
+}
+
+void CIntNotifyReq::populateRequestString( void )
+{
+    char strBuf[MON_STRING_BUF_SIZE/2];
+    sprintf( strBuf, "IntReq(%s) req #=%ld notify(nid=%d/pid=%d/verifier=%d) 
death target(nid=%d/pid=%d/verifier=%d), canceled=%d, 
transId=%lld.%lld.%lld.%lld"
+                   , CReqQueue::intReqType[InternalType_Notify]
+                   , getId()
+                   , nid_
+                   , pid_
+                   , verifier_
+                   , targetNid_
+                   , targetPid_
+                   , targetVerifier_
+                   , canceled_
+                   , transId_.txid[0]
+                   , transId_.txid[1]
+                   , transId_.txid[2]
+                   , transId_.txid[3] );
+    requestString_.assign( strBuf );
+}
+
+void CIntNotifyReq::performRequest()
+{
+    const char method_name[] = "CIntNotifyReq::performRequest";
+    TRACE_ENTRY;
+
+    //CLNode *node;
+    //CLNode *targetNode;
+    CProcess *sourceProcess = NULL;
+    CProcess *targetProcess = NULL;
+
+    if (trace_settings & TRACE_PROCESS_DETAIL)
+    {
+        trace_printf( "%s@%d - Process death notification, canceled=%d\n"
+                    , method_name, __LINE__
+                    , canceled_ );
+    }
+
+    
+    if (trace_settings & TRACE_REQUEST)
+    {
+        trace_printf( "%s@%d" " - Finding targetProcess (%d,%d:%d)\n"
+                    , method_name, __LINE__
+                    , nid_
+                    , pid_
+                    , verifier_ );
+    }
+
+    // find by nid,pid (check node state, don't check process state, backup is 
Ok)
+    sourceProcess = Nodes->GetProcess( nid_
+                                     , pid_
+                                     , verifier_
+                                     , true, false, true );
+    if ( sourceProcess )
+    {
+        if (trace_settings & TRACE_REQUEST)
+        {
+            trace_printf( "%s@%d - Found sourceProcess %s (%d,%d:%d), 
clone=%d\n"
+                        , method_name, __LINE__
+                        , sourceProcess->GetName()
+                        , sourceProcess->GetNid()
+                        , sourceProcess->GetPid()
+                        , sourceProcess->GetVerifier()
+                        , sourceProcess->IsClone() );
+        }
+    }
+    else
+    {
+        if (!NameServerEnabled)
+        {
+            if (trace_settings & TRACE_REQUEST)
+            {
+                trace_printf("%s@%d - Can't find sourceProcess\n", 
method_name, __LINE__);
+            }
+        }
+        else
+        { // Name Server find by nid,pid:verifier
+            if (trace_settings & TRACE_REQUEST)
+            {
+                trace_printf( "%s@%d" " - Getting sourceProcess from Name 
Server (%d,%d:%d)\n"
+                            , method_name, __LINE__
+                            , nid_
+                            , pid_
+                            , verifier_ );
+            }
+            sourceProcess = Nodes->GetProcessNs( nid_
+                                               , pid_
+                                               , verifier_ );
+            if (sourceProcess)
+            {
+                if (trace_settings & TRACE_REQUEST)
+                    trace_printf( "%s@%d - Found sourceProcess %s (%d,%d:%d), 
clone=%d\n"
+                                , method_name, __LINE__
+                                , sourceProcess->GetName()
+                                , sourceProcess->GetNid()
+                                , sourceProcess->GetPid()
+                                , sourceProcess->GetVerifier()
+                                , sourceProcess->IsClone() );
+            }
+            else
+            {
+                trace_printf( "%s@%d" " - Can't find sourceProcess 
(%d,%d:%d)\n"
+                            , method_name, __LINE__
+                            , nid_
+                            , pid_
+                            , verifier_ );
+            }
+        }
+    }
+    
+    if ( sourceProcess )
+    {
+        if (trace_settings & TRACE_REQUEST)
+        {
+            trace_printf( "%s@%d" " - Finding targetProcess (%d,%d:%d)\n"
+                        , method_name, __LINE__
+                        , targetNid_
+                        , targetPid_
+                        , targetVerifier_ );
+        }
+    
+        // find by nid,pid (check node state, don't check process state, 
backup is Ok)
+        targetProcess = Nodes->GetProcess( targetNid_
+                                         , targetPid_
+                                         , targetVerifier_
+                                         , true, false, true );
+        if ( targetProcess )
+        {
+            if (trace_settings & TRACE_REQUEST)
+            {
+                trace_printf( "%s@%d - Found targetProcess %s (%d,%d:%d), 
clone=%d\n"
+                            , method_name, __LINE__
+                            , targetProcess->GetName()
+                            , targetProcess->GetNid()
+                            , targetProcess->GetPid()
+                            , targetProcess->GetVerifier()
+                            , targetProcess->IsClone() );
+            }
+        }
+        else
+        {
+            if (!NameServerEnabled)
+            {
+                if (trace_settings & TRACE_REQUEST)
+                {
+                    trace_printf("%s@%d - Can't find targetProcess\n", 
method_name, __LINE__);
+                }
+            }
+            else
+            { // Name Server find by nid,pid:verifier
+                if (trace_settings & TRACE_REQUEST)
+                {
+                    trace_printf( "%s@%d" " - Getting targetProcess from Name 
Server (%d,%d:%d)\n"
+                                , method_name, __LINE__
+                                , targetNid_
+                                , targetPid_
+                                , targetVerifier_ );
+                }
+                targetProcess = Nodes->GetProcessNs( targetNid_
+                                                   , targetPid_
+                                                   , targetVerifier_ );
+                if (targetProcess)
+                {
+                    if (trace_settings & TRACE_REQUEST)
+                        trace_printf( "%s@%d - Found targetProcess %s 
(%d,%d:%d), clone=%d\n"
+                                    , method_name, __LINE__
+                                    , targetProcess->GetName()
+                                    , targetProcess->GetNid()
+                                    , targetProcess->GetPid()
+                                    , targetProcess->GetVerifier()
+                                    , targetProcess->IsClone() );
+                }
+                else
+                {
+                    trace_printf( "%s@%d" " - Can't find targetProcess 
(%d,%d:%d)\n"
+                                , method_name, __LINE__
+                                , targetNid_
+                                , targetPid_
+                                , targetVerifier_ );
+                }
+            }
+        }
+        
+        if ( targetProcess )
+        {
+            if (canceled_)
+            {
+                if (trace_settings & (TRACE_REQUEST | TRACE_PROCESS))
+                {
+                    trace_printf( "%s@%d - Process (%d, %d:%d) deleting death "
+                                  "notice interest for %s (%d, %d:%d), "
+                                  "trans_id=%lld.%lld.%lld.%lld\n"
+                                , method_name, __LINE__
+                                , nid_
+                                , pid_
+                                , verifier_
+                                , targetProcess->GetName()
+                                , targetNid_
+                                , targetPid_
+                                , targetVerifier_
+                                , transId_.txid[0]
+                                , transId_.txid[1]
+                                , transId_.txid[2]
+                                , transId_.txid[3] );
+                }
+            
+                // Remove death notice registration
+                targetProcess->CancelDeathNotification( nid_
+                                                      , pid_
+                                                      , verifier_
+                                                      , transId_ );
+            }
+            else
+            {
+                if (trace_settings & (TRACE_REQUEST | TRACE_PROCESS))
+                {
+                    trace_printf("%s@%d - Process (%d, %d:%d) registering 
interest "
+                                 "in death of process %s (%d, %d:%d), "
+                                 "trans_id=%lld.%lld.%lld.%lld\n"
+                                , method_name, __LINE__
+                                , nid_
+                                , pid_
+                                , verifier_
+                                , targetProcess->GetName()
+                                , targetNid_
+                                , targetPid_
+                                , targetVerifier_
+                                , transId_.txid[0]
+                                , transId_.txid[1]
+                                , transId_.txid[2]
+                                , transId_.txid[3] );
+                }
+                // Register interest with the target process 
+                sourceProcess->procExitReg( targetProcess, transId_);
+            }
+        }
+        else
+        {
+            char buf[MON_STRING_BUF_SIZE];
+            sprintf( buf
+                   , "[%s], Can't find target process nid=%d, pid=%d:%d for "
+                     "processing process death notification.\n"
+                   , method_name
+                   , targetNid_
+                   , targetPid_
+                   , targetVerifier_ );
+            mon_log_write(MON_INTREQ_NOTIFY_1, SQ_LOG_INFO, buf);
+        }
+    }
+    else
+    {
+        char buf[MON_STRING_BUF_SIZE];
+        sprintf( buf
+               , "[%s], Can't find sourceProcess nid=%d, pid=%d:%d for "
+                 "processing process death notification.\n"
+               , method_name
+               , nid_
+               , pid_
+               , verifier_ );
+        mon_log_write(MON_INTREQ_NOTIFY_3, SQ_LOG_INFO, buf);
+    }
+    
+    TRACE_EXIT;
+}
+#endif
+
+#ifndef NAMESERVER_PROCESS
 CIntOpenReq::CIntOpenReq( struct open_def *openDef ) 
             : CInternalReq()
             , openerNid_( openDef->nid )
@@ -1325,7 +1823,7 @@ void CIntOpenReq::performRequest()
         char buf[MON_STRING_BUF_SIZE];
         sprintf(buf, "[%s], Can't find process nid=%d, pid=%d for "
                 "processing open.\n", method_name, openedNid_, openedPid_ );
-        mon_log_write(MON_CLUSTER_HANDLEOTHERNODE_11, SQ_LOG_ERR, buf); 
+        mon_log_write(MON_INTREQ_OPEN_1, SQ_LOG_ERR, buf); 
     }
 
     TRACE_EXIT;
@@ -1416,41 +1914,6 @@ void CIntProcInitReq::performRequest()
                 parent->SetParentPid ( process_->GetPid() );
             }
         }
-
-
-#ifdef QUICK_WAITED_NEWPROCESS_REPLY
-// Following allows reply to a "waited" new process request before we
-// get the "startup" message from the process.   This make the process
-// creation appear to complete more quickly.   However there are potential
-// problems if the requester immediately tries to open the new process 
-// because it is not ready yet.   So need to handle quick "open" of this
-// type before re-enabling this code section.
-                if (!process->IsNowait())
-                {   // new process request was a "waited" request
-                    if (process->GetParentNid() == -1)
-                    {
-                        parent = NULL;
-                    }
-                    else
-                    {
-                        parent =
-                            LNode[process->GetParentNid()]->
-                            GetProcessL(process->GetParentPid());
-                    }
-
-                    if (parent)
-                    {   
-                        reply_msg = process->parentContext();
-                        if ( reply_msg )
-                        {
-                            // the parent gets a new_process reply
-                            parent->ReplyNewProcess ( reply_msg, process );
-                            
-                            process->parentContext (NULL);
-                        }
-                    }
-                }
-#endif
     }
 
     TRACE_EXIT;
@@ -1574,13 +2037,6 @@ void CIntChildDeathReq::performRequest()
 
     if ( process_ != NULL)
     {
-#ifndef NAMESERVER_PROCESS
-        if ( NameServerEnabled )
-            NameServer->ProcessDelete(process_); // in reqQueue thread 
(CIntChildDeathReq)
-#endif
-        MyNode->DelFromNameMap ( process_ );
-        MyNode->DelFromPidMap ( process_ );
-
         if (trace_settings & TRACE_PROCESS)
         {
             trace_printf( "%s@%d Processing child death "
@@ -1591,6 +2047,13 @@ void CIntChildDeathReq::performRequest()
                          , process_->GetPid()
                          , process_->GetVerifier() );
         }
+#ifndef NAMESERVER_PROCESS
+        if ( NameServerEnabled )
+            NameServer->ProcessDelete(process_); // in reqQueue thread 
(CIntChildDeathReq)
+#endif
+        MyNode->DelFromNameMap ( process_ );
+        MyNode->DelFromPidMap ( process_ );
+
         // if state is still Up, then process has not called exit.
         bool abended = (process_->GetState() == State_Up);
         MyNode->SetProcessState(process_, State_Stopped, abended);
@@ -2677,7 +3140,7 @@ void CIntSnapshotReq::performRequest()
         case CommType_Sockets:
             if (Monitor->getJoinSock() == -1)
             {
-                mem_log_write(MON_REQQUEUE_SNAPSHOT_2);
+                mem_log_write(MON_REQQUEUE_SNAPSHOT_3);
         
                 char buf[MON_STRING_BUF_SIZE];
                 sprintf(buf, "[%s], Join socket is -1, aborting snapshot 
req.\n", method_name);
@@ -2791,7 +3254,7 @@ void CIntSnapshotReq::performRequest()
     {
         char buf[MON_STRING_BUF_SIZE];
         sprintf(buf, "Snapshot buffer compression error = %d, aborting node 
reintegration.\n", z_result);
-        mon_log_write (MON_REQQUEUE_SNAPSHOT_9, SQ_LOG_CRIT, buf);
+        mon_log_write (MON_REQQUEUE_SNAPSHOT_14, SQ_LOG_CRIT, buf);
 
         // send msg to new monitor so that it can exit
         header.compressedSize_ = -1;
@@ -2816,7 +3279,7 @@ void CIntSnapshotReq::performRequest()
         }
         if (error) {
             sprintf(buf, "Unable to send exit msg to new monitor, error = 
%d\n", error);
-            mon_log_write(MON_REQQUEUE_SNAPSHOT_9, SQ_LOG_CRIT, buf);
+            mon_log_write(MON_REQQUEUE_SNAPSHOT_15, SQ_LOG_CRIT, buf);
         }
 
         sprintf(buf, "Node reintegration aborted due to buffer compression 
error.");
@@ -3210,6 +3673,11 @@ CExternalReq 
*CReqQueue::prepExternalReq(CExternalReq::reqQueueMsg_t msgType,
             request->setConcurrent(reqConcurrent[msg->u.request.type]);
             break;
 
+        case ReqType_ProcessInfoNs:
+            request = new CExtProcInfoNsReq(msgType, nid, pid, sockFd, msg);
+            request->setConcurrent(reqConcurrent[msg->u.request.type]);
+            break;
+
         case ReqType_ShutdownNs:
             request = new CExtShutdownNsReq(msgType, nid, pid, sockFd, msg);
             request->setConcurrent(reqConcurrent[msg->u.request.type]);
@@ -3524,8 +3992,11 @@ void CReqQueue::enqueueCloneReq ( struct clone_def 
*cloneDef )
 {
     CInternalReq * request;
 
+#ifndef NAMESERVER_PROCESS
     request = new CIntCloneProcReq ( cloneDef->backup, cloneDef->unhooked, 
cloneDef->event_messages, cloneDef->system_messages, cloneDef->nid, 
cloneDef->type, cloneDef->priority, cloneDef->parent_nid, cloneDef->parent_pid, 
cloneDef->parent_verifier, cloneDef->os_pid, cloneDef->verifier, 
cloneDef->prior_pid, cloneDef->persistent_retries, cloneDef->argc, 
cloneDef->creation_time, cloneDef->pathStrId, cloneDef->ldpathStrId, 
cloneDef->programStrId, cloneDef->nameLen, cloneDef->portLen, 
cloneDef->infileLen, cloneDef->outfileLen, cloneDef->argvLen, 
&cloneDef->stringData, cloneDef->origPNidNs);
-
+#else
+    request = new CIntCloneProcNsReq ( cloneDef->backup, cloneDef->unhooked, 
cloneDef->event_messages, cloneDef->system_messages, cloneDef->nid, 
cloneDef->type, cloneDef->priority, cloneDef->parent_nid, cloneDef->parent_pid, 
cloneDef->parent_verifier, cloneDef->os_pid, cloneDef->verifier, 
cloneDef->prior_pid, cloneDef->persistent_retries, cloneDef->argc, 
cloneDef->creation_time, cloneDef->pathStrId, cloneDef->ldpathStrId, 
cloneDef->programStrId, cloneDef->nameLen, cloneDef->portLen, 
cloneDef->infileLen, cloneDef->outfileLen, cloneDef->argvLen, 
&cloneDef->stringData, cloneDef->origPNidNs);
+#endif
     enqueueReq ( request );
 }
 
@@ -3797,6 +4268,17 @@ void CReqQueue::enqueueNewProcReq( struct process_def 
*procDef )
 
 
 #ifndef NAMESERVER_PROCESS
+void CReqQueue::enqueueNotifyReq( struct notify_def *notifyDef )
+{
+    CIntNotifyReq * request;
+
+    request = new CIntNotifyReq( notifyDef );
+
+    enqueueReq ( request );
+}
+#endif
+
+#ifndef NAMESERVER_PROCESS
 void CReqQueue::enqueueOpenReq( struct open_def *openDef )
 {
     CIntOpenReq * request;
@@ -4365,13 +4847,14 @@ const bool CReqQueue::reqConcurrent[] = {
    false,    // ReqType_PNodeInfo
    false,    // ReqType_ProcessInfo
    false,    // ReqType_ProcessInfoCont
+   false,    // ReqType_ProcessInfoNs
    false,    // ReqType_Set
    false,    // ReqType_Shutdown
    false,    // ReqType_ShutdownNs
    false,    // ReqType_Startup
    false,    // ReqType_Stfsd
    false,    // ReqType_TmLeader
-   false,    // ReqType_TmReady,
+   false,    // ReqType_TmReady
    false,    // ReqType_TmSync
    false,    // ReqType_TransInfo
    false,    // ReqType_ZoneInfo
@@ -4380,89 +4863,91 @@ const bool CReqQueue::reqConcurrent[] = {
 
 // Request names used for trace output
 const char * CReqQueue::svcReqType[] = {
-    "",
-    "Close",
-    "DeleteNs",
-    "Dump",
-    "Event",
-    "Exit",
-    "Get",
-    "Kill",
-    "MonStats",
-    "Mount",
-    "NameServerAdd",
-    "NameServerDelete",
-    "NameServerStart",
-    "NameServerStop",
-    "NewProcess",
-    "NewProcessNs",
-    "NodeAdd",
-    "NodeDelete",
-    "NodeDown",
-    "NodeInfo",
-    "NodeName",
-    "NodeUp",
-    "Notice",
-    "Notify",
-    "Open",
-    "OpenInfo",
-    "PersistAdd",
-    "PersistDelete",
-    "PNodeInfo",
-    "ProcessInfo",
-    "ProcessInfoCont",
-    "Set",
-    "Shutdown",
-    "ShutdownNs",
-    "Startup",
-    "Stfsd",
-    "TmLeader",
-    "TmReady",
-    "TmSync",
-    "TransInfo",
-    "ZoneInfo"
+    "",                 // unused, request types start at 1
+    "Close",            // ReqType_Close
+    "DelProcessNs",     // ReqType_DelProcessNs
+    "Dump",             // ReqType_Dump
+    "Event",            // ReqType_Event
+    "Exit",             // ReqType_Exit
+    "Get",              // ReqType_Get
+    "Kill",             // ReqType_Kill
+    "MonStats",         // ReqType_MonStats
+    "Mount",            // ReqType_Mount
+    "NameServerAdd",    // ReqType_NameServerAdd
+    "NameServerDelete", // ReqType_NameServerDelete
+    "NameServerStart",  // ReqType_NameServerStart
+    "NameServerStop",   // ReqType_NameServerStop
+    "NewProcess",       // ReqType_NewProcess
+    "NewProcessNs",     // ReqType_NewProcessNs
+    "NodeAdd",          // ReqType_NodeAdd
+    "NodeDelete",       // ReqType_NodeDelete
+    "NodeDown",         // ReqType_NodeDown
+    "NodeInfo",         // ReqType_NodeInfo
+    "NodeName",         // ReqType_NodeName
+    "NodeUp",           // ReqType_NodeUp
+    "Notice",           // ReqType_Notice -- not an actual request
+    "Notify",           // ReqType_Notify
+    "Open",             // ReqType_Open
+    "OpenInfo",         // ReqType_OpenInfo
+    "PersistAdd",       // ReqType_PersistAdd
+    "PersistDelete",    // ReqType_PersistDelete
+    "PNodeInfo",        // ReqType_PNodeInfo
+    "ProcessInfo",      // ReqType_ProcessInfo
+    "ProcessInfoCont",  // ReqType_ProcessInfoCont
+    "ProcessInfoNs",    // ReqType_ProcessInfoNs
+    "Set",              // ReqType_Set
+    "Shutdown",         // ReqType_Shutdown
+    "ShutdownNs",       // ReqType_ShutdownNs
+    "Startup",          // ReqType_Startup
+    "Stfsd",            // ReqType_Stfsd
+    "TmLeader",         // ReqType_TmLeader
+    "TmReady",          // ReqType_TmReady
+    "TmSync",           // ReqType_TmSync
+    "TransInfo",        // ReqType_TransInfo
+    "ZoneInfo"          // ReqType_ZoneInfo
+    "Invalid"           // ReqType_Invalid
 };
 
 // Must match internal.h:InternalType 
 const char * CReqQueue::intReqType[] = {
-      ""
-    , "ActivateSpare"
-    , "Clone"
-    , "Device"
-    , "Down"
-    , "Dump"
-    , "DumpComplete"
-    , "Event"
-    , "Exit"
-    , "IoData"
-    , "Kill"
-    , "NameServerAdd"
-    , "NameServerDelete"
-    , "NodeAdd"
-    , "NodeAdded"
-    , "NodeDelete"
-    , "NodeDeleted"
-    , "NodeName"
-    , "Notify"
-    , "PersistAdd"
-    , "PersistDelete"
-    , "Process"
-    , "ProcessInit"
-    , "Open"
-    , "Set"
-    , "StdinReq"
-    , "Sync"
-    , "Up"
-    , "CreatePrimitives"
-    , "Quiesce"
-    , "PostQuiesce"
-    , "Revive"
-    , "Snapshot"
-    , "UniqStr"
-    , "TMReady"
-    , "Shutdown"
-    , "SchedData"
-    , "SoftNodeDown"
-    , "SoftNodeUp"
+      ""                  // InternalType_Null
+    , "ActivateSpare"     // InternalType_ActivateSpare
+    , "Clone"             // InternalType_Clone
+    , "Device"            // InternalType_Device
+    , "Down"              // InternalType_Down
+    , "Dump"              // InternalType_Dump
+    , "DumpComplete"      // InternalType_DumpComplete
+    , "Event"             // InternalType_Event
+    , "Exit"              // InternalType_Exit
+    , "IoData"            // InternalType_IoData
+    , "Kill"              // InternalType_Kill
+    , "NameServerAdd"     // InternalType_NameServerAdd
+    , "NameServerDelete"  // InternalType_NameServerDelete
+    , "NodeAdd"           // InternalType_NodeAdd
+    , "NodeAdded"         // InternalType_NodeAdded
+    , "NodeDelete"        // InternalType_NodeDelete
+    , "NodeDeleted"       // InternalType_NodeDeleted
+    , "NodeName"          // InternalType_NodeName
+    , "Notify"            // InternalType_Notify
+    , "PersistAdd"        // InternalType_PersistAdd
+    , "PersistDelete"     // InternalType_PersistDelete
+    , "Process"           // InternalType_Process
+    , "ProcessInit"       // InternalType_ProcessInit
+    , "Open"              // InternalType_Open
+    , "Set"               // InternalType_Set
+    , "StdinReq"          // InternalType_StdinReq
+    , "Sync"              // InternalType_Sync
+    , "Up"                // InternalType_Up
+    , "CreatePrimitives"  // InternalType_CreatePrimitives
+    , "Quiesce"           // InternalType_Quiesce
+    , "PostQuiesce"       // InternalType_PostQuiece
+    , "Revive"            // InternalType_Revive
+    , "Snapshot"          // InternalType_Snapshot
+    , "UniqStr"           // InternalType_UniqStr
+    , "TMReady"           // InternalType_TmReady
+    , "Shutdown"          // InternalType_Shutdown
+    , "SchedData"         // InternalType_SchedData
+    , "SoftNodeDown"      // InternalType_SoftNodeDown
+    , "SoftNodeUp"        // InternalType_SoftNodeUp
 };
 

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/monitor/linux/reqqueue.h
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/reqqueue.h 
b/core/sqf/monitor/linux/reqqueue.h
index 5f59315..7fa69fd 100644
--- a/core/sqf/monitor/linux/reqqueue.h
+++ b/core/sqf/monitor/linux/reqqueue.h
@@ -659,6 +659,24 @@ private:
     void populateRequestString( void );
 };
 
+#ifdef NAMESERVER_PROCESS
+
+class CExtProcInfoNsReq: public CExternalReq
+{
+public:
+    CExtProcInfoNsReq( reqQueueMsg_t msgType,
+                       int nid, int pid, int sockFd,
+                       struct message_def *msg );
+    virtual ~CExtProcInfoNsReq();
+
+    void performRequest();
+
+private:
+    void copyInfo(CProcess *process, ProcessInfoNs_reply_def &procInfo);
+    void populateRequestString( void );
+};
+#endif
+
 #ifndef NAMESERVER_PROCESS
 class CExtSetReq: public CExternalReq
 {
@@ -810,6 +828,7 @@ private:
 };
 
 
+#ifndef NAMESERVER_PROCESS
 class CIntCloneProcReq: public CInternalReq
 {
 public:
@@ -848,6 +867,48 @@ private:
     char * stringData_;
     int origPNidNs_;
 };
+#endif
+
+#ifdef NAMESERVER_PROCESS
+class CIntCloneProcNsReq: public CInternalReq
+{
+public:
+    CIntCloneProcNsReq( bool backup, bool unhooked, bool eventMessages, bool 
systemMessages, int nid, PROCESSTYPE type, int priority, int parentNid, int 
parentPid, int parentVerifier, int osPid, int verifier, pid_t priorPid, int 
persistentRetries, int  argc, struct timespec creationTime, strId_t pathStrId, 
strId_t ldpathStrId, strId_t programStrId, int nameLen, int portLen, int 
infileLen, int outfileLen, int argvLen, const char * stringData, int 
origPNidNs);
+    virtual ~CIntCloneProcNsReq();
+
+    void performRequest();
+
+private:
+    void populateRequestString( void );
+
+    bool backup_;
+    bool unhooked_;
+    bool eventMessages_;
+    bool systemMessages_;
+    int nid_;
+    PROCESSTYPE type_;
+    int priority_;
+    int parentNid_;
+    int parentPid_;
+    int parentVerifier_;
+    int osPid_;
+    int verifier_; 
+    pid_t priorPid_;
+    int persistentRetries_;
+    int  argc_;
+    struct timespec creationTime_;
+    strId_t pathStrId_;
+    strId_t ldpathStrId_;
+    strId_t programStrId_;
+    int  nameLen_;
+    int  portLen_;
+    int  infileLen_;
+    int  outfileLen_;
+    int  argvLen_;
+    char * stringData_;
+    int origPNidNs_;
+};
+#endif
 
 #ifndef NAMESERVER_PROCESS
 class CIntDeviceReq: public CInternalReq
@@ -983,6 +1044,28 @@ private:
     char * stringData_;
 };
 
+class CIntNotifyReq: public CInternalReq
+{
+public:
+    CIntNotifyReq( struct notify_def *notifyDef );
+    virtual ~CIntNotifyReq( );
+
+    void performRequest();
+
+private:
+    void populateRequestString( void );
+
+    int nid_;
+    int pid_;
+    Verifier_t verifier_;
+    bool canceled_;
+    int targetNid_;
+    int targetPid_;
+    Verifier_t targetVerifier_;
+    _TM_Txid_External transId_;
+};
+
+
 class CIntOpenReq: public CInternalReq
 {
 public:
@@ -1397,6 +1480,7 @@ class CReqQueue
 #endif
     void enqueueNewProcReq( struct process_def *procDef );
 #ifndef NAMESERVER_PROCESS
+    void enqueueNotifyReq( struct notify_def *notifyDef );
     void enqueueOpenReq( struct open_def *openDef );
 #endif
     void enqueueProcInitReq( struct process_init_def *procInitDef );

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/monitor/test/childExitChild.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/test/childExitChild.cxx 
b/core/sqf/monitor/test/childExitChild.cxx
index 2fea575..adc11f9 100755
--- a/core/sqf/monitor/test/childExitChild.cxx
+++ b/core/sqf/monitor/test/childExitChild.cxx
@@ -57,6 +57,7 @@ int main (int argc, char *argv[])
     util.requestStartup ();
 
     for (int i=0; i<10; i++)
+//    while( 1 )
     {
         if ( tracing )
             printf ("[%s] delaying...\n", MyName);

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/monitor/test/childExitParent.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/test/childExitParent.cxx 
b/core/sqf/monitor/test/childExitParent.cxx
index 96bcc84..702f6d0 100755
--- a/core/sqf/monitor/test/childExitParent.cxx
+++ b/core/sqf/monitor/test/childExitParent.cxx
@@ -142,6 +142,7 @@ int main (int argc, char *argv[])
     printf ("[%s] children created, ready to be killed ...\n", MyName);
 
     for (int i=0; i<7; i++)
+//    while( 1 )
     {
         // temp print
         printf ("[%s] delaying...\n", MyName);

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/monitor/test/montestutil.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/test/montestutil.cxx 
b/core/sqf/monitor/test/montestutil.cxx
index 3376348..43e16c9 100644
--- a/core/sqf/monitor/test/montestutil.cxx
+++ b/core/sqf/monitor/test/montestutil.cxx
@@ -134,8 +134,8 @@ void MonTestUtil::processArgs( int argc, char *argv[] )
     // enable tracing if trace flag supplied
     for (i=0; i<argc; i++)
     {
-        if ( strcmp(argv[i], "-t") == 0 ) gv_xmpi_trace = trace_ = true;
-//        if ( strcmp(argv[i], "-t") == 0 ) trace_ = true;
+//        if ( strcmp(argv[i], "-t") == 0 ) gv_xmpi_trace = trace_ = true;
+        if ( strcmp(argv[i], "-t") == 0 ) trace_ = true;
         if ( strcmp(argv[i], "-x") == 0 ) shutdownBeforeStartup_ = true;
         if ( strcmp(argv[i], "-y") == 0 ) nodedownBeforeStartup_ = true;
     }

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/monitor/test/runtest
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/test/runtest b/core/sqf/monitor/test/runtest
index 8c1193b..1d7929e 100755
--- a/core/sqf/monitor/test/runtest
+++ b/core/sqf/monitor/test/runtest
@@ -60,6 +60,12 @@ function Usage
     echo
 }
 
+function Cleanup
+{
+    ckillall
+    sqipcrm
+}
+
 if [ $# -lt 1 ]; then
     Usage
     exit 1
@@ -108,15 +114,26 @@ cd $TRAF_HOME/monitor/test
 echo $PWD
 
 if [ "$cluster" = "-cluster" ]; then
-    ckillall
+    echo ************ Executing test in cluster environment ************
 else if [ "$virtual" = "-virtual" ]; then
-    ckillall
+    echo ************ Executing test in virtual environment ************
 else
     Usage
     exit 1
 fi
 fi
 
+if [ "$cluster" = "-cluster" ]; then
+    pdsh $MY_NODES "rm -f $MPI_TMPDIR/monitor.port.*"
+    pdsh $MY_NODES "rm $PWD/core* $PWD/*.lst $PWD/stdout_*"
+else
+    rm -f $MPI_TMPDIR/monitor.port.*
+    rm core* *.lst stdout_*
+    # Establish SQ virtual cluster parameters
+    export SQ_VIRTUAL_NODES=6
+    export SQ_VIRTUAL_NID=0
+fi
+
 if [ ! -z "$SQ_DTM_PERSISTENT_PROCESS" ]; then
     let dtm_persistent_process=`echo $SQ_DTM_PERSISTENT_PROCESS`
 else
@@ -130,21 +147,6 @@ export SQ_SHELL_NOCWD=1
 #export SQ_LOCAL_IO_SHELL_TRACE=1
 
 #
-# Cleanup
-#
-sqipcrm
-if [ "$cluster" = "-cluster" ]; then
-    pdsh $MY_NODES "rm -f $MPI_TMPDIR/monitor.port.*"
-    pdsh $MY_NODES "rm $PWD/core* $PWD/*.lst $PWD/stdout_*"
-else
-    rm -f $MPI_TMPDIR/monitor.port.*
-    rm core* *.lst stdout_*
-    # Establish SQ virtual cluster parameters
-    export SQ_VIRTUAL_NODES=6
-    export SQ_VIRTUAL_NID=0
-fi
-
-#
 # Setup up monitor configuration
 #
 if [ "$nogen" = "-nogen" ]; then
@@ -161,13 +163,23 @@ if ( [ $test '==' -1 ] || [ $test '==' 1 ] ); then
  echo "***"
  echo "*** Executing Child Exit test"
  echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  exec {name \$CTRLR, nid 0, out $TRAF_HOME/monitor/test/childExit.lst} 
childExitCtrl $trace
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
- sleep 1
+fi
+ sleep 5
  cstat -h
  if [ "$cluster" = "-cluster" ]; then
      pdsh $MY_NODES grep PASSED $PWD/childExit.lst
@@ -182,8 +194,10 @@ if ( [ $test '==' -1 ] || [ $test '==' 2 ] ); then
  echo "***"
  echo "*** Executing Multi-Node test"
  echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  ! General tests for monitor functionality. This includes
  !  Open, Close, NewProcess, ProcessInfo and sync node state
  !  between nodes.
@@ -193,10 +207,18 @@ shell <<eof
  exec {nowait,pri 5,name \$SERV1} server $trace
  ps
  exec {pri 10,name \$CLIENT,nid 0, out $TRAF_HOME/monitor/test/multiNode.lst} 
client $trace
+ delay 3
+ !shutdown
+ ps
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
- sleep 1
+fi
+ sleep 5
  cstat -h
  if [ "$cluster" = "-cluster" ]; then
      pdsh $MY_NODES grep PASSED $PWD/multiNode.lst
@@ -211,13 +233,23 @@ fi
  echo "***"
  echo "*** Executing Registry test"
  echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  exec {name \$CTRLR, nid 0, out $TRAF_HOME/monitor/test/regTest.lst} 
regTestCtrl $trace
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
- sleep 1
+fi
+ sleep 5
  cstat -h
  if [ "$cluster" = "-cluster" ]; then
      pdsh $MY_NODES grep PASSED $PWD/regTest.lst
@@ -232,8 +264,10 @@ if ( [ $test '==' -1 ] || [ $test '==' 4 ] ); then
  echo "***"
  echo "*** Executing Death Notice test"
  echo "***"
- shell <<eof
+Cleanup
+shell <<eof
  startup
+ delay 3
  ! Test to register and cancel process death
  ! notices from non-parent process.
  !
@@ -246,10 +280,18 @@ if ( [ $test '==' -1 ] || [ $test '==' 4 ] ); then
  ! To enable tracing add "-t" argument to the end of the "exec" line
  !
  exec {name \$DEATH, nid 0, out $TRAF_HOME/monitor/test/deathNotice.lst} 
deathNotice $trace
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
- sleep 1
+fi
+ sleep 5
  cstat -h
  if [ "$cluster" = "-cluster" ]; then
      pdsh $MY_NODES grep PASSED $PWD/deathNotice.lst
@@ -260,20 +302,31 @@ eof
  fi
 fi
 
-if ( [ $test '==' -1 ] || [ $test '==' 5 ] ); then
+#if ( [ $test '==' -1 ] || [ $test '==' 5 ] ); then
+if ( [ $test '==' 5 ] ); then
  if [ "$cluster" = "-cluster" ]; then
   echo "***"
   echo "*** Executing Persistent Process cluster test"
   echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  down 2 !
  delay 15
  exec {name \$PPROC, nid 0, out $TRAF_HOME/monitor/test/persistentProc.lst} 
persistentProc $trace
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
-  sleep 1
+fi
+  sleep 5
   cstat -h
   pdsh $MY_NODES grep PASSED $PWD/persistentProc.lst
   pdsh $MY_NODES grep FAILED $PWD/persistentProc.lst
@@ -281,31 +334,53 @@ eof
   echo "***"
   echo "*** Executing Persistent Process test"
   echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  exec {name \$PPROC, nid 0, out $TRAF_HOME/monitor/test/persistentProc.lst} 
persistentProc $trace
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
-  sleep 1
+fi
+  sleep 5
   cstat -h
   grep PASSED $PWD/persistentProc.lst
   grep FAILED $PWD/persistentProc.lst
  fi
 fi
 
+#if ( [[ $dtm_persistent_process == "1" ]] &&
+#      ([ $test '==' -1 ] || [ $test '==' 6 ]) ); then
 if ( [[ $dtm_persistent_process == "1" ]] &&
-      ([ $test '==' -1 ] || [ $test '==' 6 ]) ); then
+      ([ $test '==' 6 ]) ); then
  echo "***"
  echo "*** Executing DTM Process test"
  echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  exec {name \$DTMCTRL, nid 0, out $TRAF_HOME/monitor/test/dtmTest.lst} dtmCtrl 
$trace
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
- sleep 1
+fi
+ sleep 5
  cstat -h
  if [ "$cluster" = "-cluster" ]; then
      pdsh $MY_NODES grep PASSED $PWD/dtmTest.lst
@@ -320,17 +395,28 @@ else
    fi
 fi
 
-if ( [ $test '==' -1 ] || [ $test '==' 7 ] ); then
+#if ( [ $test '==' -1 ] || [ $test '==' 7 ] ); then
+if ( [ $test '==' 7 ] ); then
  echo "***"
  echo "*** Executing SPX Process test"
  echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  exec {name \$SPXCTRL, nid 0, out $TRAF_HOME/monitor/test/spxTest.lst} spxCtrl 
$trace
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
- sleep 1
+fi
+ sleep 5
  cstat -h
  if [ "$cluster" = "-cluster" ]; then
      pdsh $MY_NODES grep PASSED $PWD/spxTest.lst
@@ -345,12 +431,23 @@ if ( [ $test '==' -1 ] || [ $test '==' 8 ] ); then
  echo "***"
  echo "*** Executing Process Create test"
  echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  exec {name \$PCRE8, nid 0, out $TRAF_HOME/monitor/test/procCreate.lst} 
procCreate $trace -x
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
+ shutdown
  exit
 eof
- sleep 1
+fi
+ sleep 5
  cstat -h
  if [ "$cluster" = "-cluster" ]; then
      pdsh $MY_NODES grep PASSED $PWD/procCreate.lst
@@ -365,15 +462,24 @@ if ( [ $test '==' -1 ] || [ $test '==' 9 ] ); then
  echo "***"
  echo "*** Executing Process Creates Node down before startup test"
  echo "***"
+Cleanup
 shell <<eof 
  startup
+ delay 3
  exec {nowait, name \$PCRE8, nid 0, out $TRAF_HOME/monitor/test/nodeDown.lst} 
procCreate $trace -y
  delay 3
  down 1 !
  delay 10
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
+fi
  sleep 10
  cstat -h
  if [ "$cluster" = "-cluster" ]; then
@@ -386,50 +492,80 @@ eof
 fi
 
 
-#if ( [ $test '==' -1 ] || [ $test '==' 9 ] ); then
-if ( [ $test '==' 9 ] ); then
+#if ( [ $test '==' -1 ] || [ $test '==' 10 ] ); then
+if ( [ $test '==' 10 ] ); then
  if [ "$cluster" = "-cluster" ]; then
   echo "***"
   echo "*** Executing TmSync cluster test (subtest 7 disabled until it's 
fixed)"
   echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  exec {nowait, nid 0, name \$CTRLR, out $TRAF_HOME/monitor/test/tmSync.lst} 
tmSyncCtrl -n 1,3,4,5,6 $trace
  wait $CTRLR
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
-  sleep 1
+fi
+  sleep 5
   cstat -h
   pdsh $MY_NODES grep PASSED $PWD/tmSync.lst
   pdsh $MY_NODES grep FAILED $PWD/tmSync.lst
   echo "***"
   echo "*** Executing TmSync cluster test 10"
   echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  exec {nowait, nid 0, name \$CTRLR, out $TRAF_HOME/monitor/test/tmSync8.lst} 
tmSyncCtrl -n 8 $trace
  wait $CTRLR
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
-  sleep 1
+fi
+  sleep 5
   cstat -h
   pdsh $MY_NODES grep PASSED $PWD/tmSync9.lst
   pdsh $MY_NODES grep FAILED $PWD/tmSync9.lst
   echo "***"
   echo "*** Executing TmSync cluster test 10"
   echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  down 2 !
  delay 15
  exec {nowait, nid 0, name \$CTRLR, out $TRAF_HOME/monitor/test/tmSync10.lst} 
tmSyncCtrl -n 10 $trace
  wait $CTRLR
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
-  sleep 1
+fi
+  sleep 5
   cstat -h
   pdsh $MY_NODES grep PASSED $PWD/tmSync10.lst
   pdsh $MY_NODES grep FAILED $PWD/tmSync10.lst
@@ -437,19 +573,29 @@ eof
   echo "***"
   echo "*** Executing TmSync test"
   echo "***"
+Cleanup
 shell <<eof
  startup
+ delay 3
  exec {nowait, nid 0, name \$CTRLR, out $TRAF_HOME/monitor/test/tmSync.lst} 
tmSyncCtrl -n 3,4,5,6,7 $trace
  wait $CTRLR
+ delay 3
+ ps
+ !shutdown
+ exit
+eof
+if ( [ $test '==' -1 ] ); then
+shell <<eof
  shutdown
  exit
 eof
+fi
   # Reset SQ virtual cluster parameters
   unset SQ_VIRTUAL_NODES
   unset SQ_VIRTUAL_NID
  fi
  
- sleep 1
+ sleep 5
  cstat -h
  if [ "$cluster" = "-cluster" ]; then
      pdsh $MY_NODES grep PASSED $PWD/tmSync.lst
@@ -473,12 +619,12 @@ if ( [ $test '==' -1 ] ); then
      pdsh $MY_NODES grep FAILED $PWD/regTest.lst
      pdsh $MY_NODES grep PASSED $PWD/deathNotice.lst
      pdsh $MY_NODES grep FAILED $PWD/deathNotice.lst
-     pdsh $MY_NODES grep PASSED $PWD/persistentProc.lst
-     pdsh $MY_NODES grep FAILED $PWD/persistentProc.lst
-     pdsh $MY_NODES grep PASSED $PWD/dtmTest.lst
-     pdsh $MY_NODES grep FAILED $PWD/dtmTest.lst
-     pdsh $MY_NODES grep PASSED $PWD/spxTest.lst
-     pdsh $MY_NODES grep FAILED $PWD/spxTest.lst
+#     pdsh $MY_NODES grep PASSED $PWD/persistentProc.lst
+#     pdsh $MY_NODES grep FAILED $PWD/persistentProc.lst
+#     pdsh $MY_NODES grep PASSED $PWD/dtmTest.lst
+#     pdsh $MY_NODES grep FAILED $PWD/dtmTest.lst
+#     pdsh $MY_NODES grep PASSED $PWD/spxTest.lst
+#     pdsh $MY_NODES grep FAILED $PWD/spxTest.lst
      pdsh $MY_NODES grep PASSED $PWD/procCreate.lst
      pdsh $MY_NODES grep FAILED $PWD/procCreate.lst
      pdsh $MY_NODES grep PASSED $PWD/nodeDown.lst
@@ -498,12 +644,12 @@ if ( [ $test '==' -1 ] ); then
      grep FAILED $PWD/regTest.lst
      grep PASSED $PWD/deathNotice.lst
      grep FAILED $PWD/deathNotice.lst
-     grep PASSED $PWD/persistentProc.lst
-     grep FAILED $PWD/persistentProc.lst
-     grep PASSED $PWD/dtmTest.lst
-     grep FAILED $PWD/dtmTest.lst
-     grep PASSED $PWD/spxTest.lst
-     grep FAILED $PWD/spxTest.lst
+#     grep PASSED $PWD/persistentProc.lst
+#     grep FAILED $PWD/persistentProc.lst
+#     grep PASSED $PWD/dtmTest.lst
+#     grep FAILED $PWD/dtmTest.lst
+#     grep PASSED $PWD/spxTest.lst
+#     grep FAILED $PWD/spxTest.lst
      grep PASSED $PWD/procCreate.lst
      grep FAILED $PWD/procCreate.lst
      grep PASSED $PWD/nodeDown.lst

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/monitor/test/sqconfig.monitor.virtual
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/test/sqconfig.monitor.virtual 
b/core/sqf/monitor/test/sqconfig.monitor.virtual
index f589944..8f6750c 100644
--- a/core/sqf/monitor/test/sqconfig.monitor.virtual
+++ b/core/sqf/monitor/test/sqconfig.monitor.virtual
@@ -24,5 +24,6 @@ _virtualnodes 6
 end node
 
 begin name-server
-nodes=0,1
+nodes=0
+#nodes=0,1,2,3,4,5
 end name-server

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/sqenvcom.sh
----------------------------------------------------------------------
diff --git a/core/sqf/sqenvcom.sh b/core/sqf/sqenvcom.sh
index d2713b6..b8f425c 100644
--- a/core/sqf/sqenvcom.sh
+++ b/core/sqf/sqenvcom.sh
@@ -686,16 +686,18 @@ export SQ_STARTUP=r
 #
 # Uncomment the next three environment variables
 #export SQ_MON_RUN_MODE=AGENT
-#export MONITOR_COMM_PORT=23399
-#export MONITOR_SYNC_PORT=23398
+#export MONITOR_COMM_PORT=23390
+#export MONITOR_SYNC_PORT=23380
 #
 #   NAME-SERVER - to disable process replication and enable name-server
 #
-# Uncomment the next four environment variables
-#export NAMESERVER_ENABLE=1
-#export NS_COMM_PORT=23389
-#export NS_SYNC_PORT=23388
-#export NS_M2N_COMM_PORT=23379
+# Uncomment the next six environment variables
+#export SQ_NAMESERVER_ENABLE=1
+#export NS_COMM_PORT=23370
+#export NS_SYNC_PORT=23360
+#export NS_M2N_COMM_PORT=23350
+#export MON2MON_COMM_PORT=23340
+#export MONITOR_COMM_PORT=23330
 
 # Alternative logging capability in monitor
 export SQ_MON_ALTLOG=0

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/sql/scripts/monitor.env
----------------------------------------------------------------------
diff --git a/core/sqf/sql/scripts/monitor.env b/core/sqf/sql/scripts/monitor.env
index bbf1ade..fc10c1f 100644
--- a/core/sqf/sql/scripts/monitor.env
+++ b/core/sqf/sql/scripts/monitor.env
@@ -21,20 +21,21 @@
 
 # Uncomment MON_TRACE_ENABLE and specific tracing level to enable 
 # Trafodion monitor process tracing
-#MON_TRACE_ENABLE=1
-#MON_TRACE_EVLOG_MSG=1
-#MON_TRACE_INIT=1
-#MON_TRACE_RECOVERY=1
-#MON_TRACE_REQUEST=1
-#MON_TRACE_PROCESS=1
-#MON_TRACE_NOTICE=1
+MON_TRACE_ENABLE=1
+MON_TRACE_EVLOG_MSG=1
+MON_TRACE_INIT=1
+MON_TRACE_RECOVERY=1
+MON_TRACE_REQUEST=1
+MON_TRACE_PROCESS=1
+MON_TRACE_NOTICE=1
+MON_TRACE_NS=1
 #MON_TRACE_SYNC=1
 # Enable TC_TRACE_* along with MON_TRACE_TRAFCONFIG for more detail
 #MON_TRACE_TRAFCONFIG=1
 #MON_TRACE_MLIO=1
 
-#MON_TRACE_REQUEST_DETAIL=1
-#MON_TRACE_PROCESS_DETAIL=1
+MON_TRACE_REQUEST_DETAIL=1
+MON_TRACE_PROCESS_DETAIL=1
 #MON_TRACE_NOTICE_DETAIL=1
 #MON_TRACE_SYNC_DETAIL=1
 #MON_TRACE_MLIO_DETAIL=1

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/sql/scripts/pstat
----------------------------------------------------------------------
diff --git a/core/sqf/sql/scripts/pstat b/core/sqf/sql/scripts/pstat
index 95daa3c..fe18a1b 100755
--- a/core/sqf/sql/scripts/pstat
+++ b/core/sqf/sql/scripts/pstat
@@ -51,7 +51,7 @@ 
process_metrics,pstartd,qpidd,qscom,qsmgr,qsmgr2,qsoffndr,qsrecev,\
 qsrule,qssend,qsstats,qssync,se_metrics_aaa_delta,serevive,shell,\
 snmp_protocol_adapter,sp_proxy,sp_wrapper,spqpid_p,sqcheck,sqlci,sqregck,\
 sqstart,ssd_lun_metric_publish,ssd_lun_state_publish,ssd_metric_publish,\
-ssd_state_publish,tdm_arkcmp,tdm_arkesp,tdm_sqlc,tdm_udrserv,\
+ssd_state_publish,tdm_arkcmp,tdm_arkesp,tdm_sqlc,tdm_udrserv,trafns,\
 textprotocoladapter,timer_pop_generator,tm,tmshutdown,universal_action_agent,\
 universal_consumer,volrcov
 

http://git-wip-us.apache.org/repos/asf/trafodion/blob/abf3c429/core/sqf/sql/scripts/sqconfig
----------------------------------------------------------------------
diff --git a/core/sqf/sql/scripts/sqconfig b/core/sqf/sql/scripts/sqconfig
index 9d85ba6..a753549 100644
--- a/core/sqf/sql/scripts/sqconfig
+++ b/core/sqf/sql/scripts/sqconfig
@@ -23,6 +23,10 @@ begin node
 _virtualnodes 2
 end node
 
+#begin name-server
+#nodes=0,1
+#end name-server
+
 ###############################################################################
 #
 # Overflow directories for ssd and hdd. 

Reply via email to