You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafodion.apache.org by su...@apache.org on 2017/05/31 18:47:46 UTC

[45/50] [abbrv] incubator-trafodion git commit: Restored nodeAdd scripts to support new node add logic. Fixed 'shell node add' logic in Trafodion Configuration library module.

Restored nodeAdd scripts to support new node add logic.
Fixed 'shell node add' logic in Trafodion Configuration library module.


Project: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/commit/23bb89af
Tree: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/tree/23bb89af
Diff: http://git-wip-us.apache.org/repos/asf/incubator-trafodion/diff/23bb89af

Branch: refs/heads/master
Commit: 23bb89af18a639663df14b03b86f8a12e347bd0b
Parents: c8f07c1
Author: Zalo Correa <za...@esgyn.com>
Authored: Tue May 9 16:25:56 2017 -0700
Committer: Zalo Correa <za...@esgyn.com>
Committed: Tue May 9 16:25:56 2017 -0700

----------------------------------------------------------------------
 core/sqf/monitor/linux/reqnodeadd.cxx           |   4 +-
 core/sqf/monitor/linux/sqliteconfig.cxx         | 369 ++++++++++++++++---
 core/sqf/monitor/linux/trafconfig.cxx           |  17 +-
 core/sqf/monitor/linux/trafconfigtrace.cxx      |   2 +-
 core/sqf/sql/scripts/sqconfig                   |  11 +-
 .../transactional/TrxTransactionState.java.tmpl |  13 +-
 install/installer/addNode_step1                 |  80 +---
 install/installer/addNode_step2                 | 111 +++---
 8 files changed, 403 insertions(+), 204 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/23bb89af/core/sqf/monitor/linux/reqnodeadd.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/reqnodeadd.cxx b/core/sqf/monitor/linux/reqnodeadd.cxx
index 8ecccc3..760e5a2 100644
--- a/core/sqf/monitor/linux/reqnodeadd.cxx
+++ b/core/sqf/monitor/linux/reqnodeadd.cxx
@@ -131,8 +131,8 @@ void CExtNodeAddReq::performRequest()
                         strncpy( lnodeConfigInfo.nodename
                                , msg_->u.request.u.node_add.node_name
                                , sizeof(lnodeConfigInfo.nodename) );
-                        lnodeConfigInfo.lastCore  = msg_->u.request.u.node_add.first_core;
-                        lnodeConfigInfo.firstCore = msg_->u.request.u.node_add.last_core;
+                        lnodeConfigInfo.firstCore = msg_->u.request.u.node_add.first_core;
+                        lnodeConfigInfo.lastCore  = msg_->u.request.u.node_add.last_core;
                         lnodeConfigInfo.processor = msg_->u.request.u.node_add.processors;
                         clusterConfig->SetCoreMask( lnodeConfigInfo.lastCore
                                                   , lnodeConfigInfo.firstCore

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/23bb89af/core/sqf/monitor/linux/sqliteconfig.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/sqliteconfig.cxx b/core/sqf/monitor/linux/sqliteconfig.cxx
index f69e402..ea7ca1f 100644
--- a/core/sqf/monitor/linux/sqliteconfig.cxx
+++ b/core/sqf/monitor/linux/sqliteconfig.cxx
@@ -106,6 +106,10 @@ int CSqliteConfig::AddRegistryKey( const char *key )
                     , "[%s] sqlite3_bind_text(:key) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -119,6 +123,10 @@ int CSqliteConfig::AddRegistryKey( const char *key )
                     , "[%s] (%s) failed, key=%s, error: %s\n"
                     , method_name, sqlStmt, key, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -128,7 +136,6 @@ int CSqliteConfig::AddRegistryKey( const char *key )
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -184,6 +191,10 @@ int CSqliteConfig::AddRegistryProcess( const char *name )
                     , "[%s] sqlite3_bind_text(:name) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -197,6 +208,10 @@ int CSqliteConfig::AddRegistryProcess( const char *name )
                     , "[%s] (%s) failed, name=%s, error: %s\n"
                     , method_name, sqlStmt, name, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -206,7 +221,6 @@ int CSqliteConfig::AddRegistryProcess( const char *name )
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -266,6 +280,10 @@ int CSqliteConfig::AddRegistryClusterData( const char *key
                     , "[%s] sqlite3_bind_text(:dataValue) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -279,6 +297,10 @@ int CSqliteConfig::AddRegistryClusterData( const char *key
                     , "[%s] sqlite3_bind_text(:key) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -292,6 +314,10 @@ int CSqliteConfig::AddRegistryClusterData( const char *key
                     , "[%s] (%s) failed, key=%s, error: %s\n"
                     , method_name, sqlStmt, key, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -301,7 +327,6 @@ int CSqliteConfig::AddRegistryClusterData( const char *key
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -367,6 +392,10 @@ int CSqliteConfig::AddRegistryProcessData( const char *procName
                     , "[%s] sqlite3_bind_text(:procName) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -381,6 +410,10 @@ int CSqliteConfig::AddRegistryProcessData( const char *procName
                     , "[%s] sqlite3_bind_text(:dataValue) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -394,6 +427,10 @@ int CSqliteConfig::AddRegistryProcessData( const char *procName
                     , "[%s] sqlite3_bind_text(:key) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -407,6 +444,10 @@ int CSqliteConfig::AddRegistryProcessData( const char *procName
                     , "[%s] (%s) failed, key=%s, proc=%s, error: %s\n"
                     , method_name, sqlStmt, key, procName, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -416,7 +457,6 @@ int CSqliteConfig::AddRegistryProcessData( const char *procName
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -473,6 +513,10 @@ int CSqliteConfig::AddUniqueString( int nid
                       "[%s] sqlite3_bind_int(nid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -484,6 +528,10 @@ int CSqliteConfig::AddUniqueString( int nid
                       "[%s] sqlite3_bind_int(id) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -495,6 +543,10 @@ int CSqliteConfig::AddUniqueString( int nid
                     , "[%s] sqlite3_bind_text(uniqStr) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -507,6 +559,10 @@ int CSqliteConfig::AddUniqueString( int nid
                     , "[%s] (%s) failed, nid=%d, id=%d, error: %s\n"
                     , method_name, sqlStmt, nid, id, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -516,7 +572,6 @@ int CSqliteConfig::AddUniqueString( int nid
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -607,6 +662,10 @@ int CSqliteConfig::DeleteNodeData( int pnid )
                       "[%s] sqlite3_bind_int(pnid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt1 != NULL )
+            {
+                sqlite3_finalize( prepStmt1 );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -620,6 +679,10 @@ int CSqliteConfig::DeleteNodeData( int pnid )
                     , "[%s] (%s) failed, pNid=%d, error: %s\n"
                     , method_name, sqlStmt1, pnid, sqlite3_errmsg(db_));
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt1 != NULL )
+            {
+                sqlite3_finalize( prepStmt1 );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -637,6 +700,10 @@ int CSqliteConfig::DeleteNodeData( int pnid )
                 , "[%s] prepare (%s) failed, error=%s\n"
                 , method_name, sqlStmt2, sqlite3_errmsg(db_) );
         TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+        if ( prepStmt1 != NULL )
+        {
+            sqlite3_finalize( prepStmt1 );
+        }
         TRACE_EXIT;
         return( TCDBOPERROR );
     }
@@ -650,6 +717,14 @@ int CSqliteConfig::DeleteNodeData( int pnid )
                       "[%s] sqlite3_bind_int(pnid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt1 != NULL )
+            {
+                sqlite3_finalize( prepStmt1 );
+            }
+            if ( prepStmt2 != NULL )
+            {
+                sqlite3_finalize( prepStmt2 );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -663,6 +738,14 @@ int CSqliteConfig::DeleteNodeData( int pnid )
                     , "[%s] (%s) failed, pNid=%d, error: %s\n"
                     , method_name, sqlStmt2, pnid, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt1 != NULL )
+            {
+                sqlite3_finalize( prepStmt1 );
+            }
+            if ( prepStmt2 != NULL )
+            {
+                sqlite3_finalize( prepStmt2 );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -676,7 +759,6 @@ int CSqliteConfig::DeleteNodeData( int pnid )
     {
         sqlite3_finalize( prepStmt2 );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -731,6 +813,10 @@ int CSqliteConfig::DeleteUniqueString( int nid )
                       "[%s] sqlite3_bind_int(nid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmtA != NULL )
+            {
+                sqlite3_finalize( prepStmtA );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -744,6 +830,10 @@ int CSqliteConfig::DeleteUniqueString( int nid )
                     , "[%s] (%s) failed, pNid=%d, error: %s\n"
                     , method_name, sqlStmtA, nid, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmtA != NULL )
+            {
+                sqlite3_finalize( prepStmtA );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -753,7 +843,6 @@ int CSqliteConfig::DeleteUniqueString( int nid )
     {
         sqlite3_finalize( prepStmtA );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -766,6 +855,7 @@ int CSqliteConfig::Initialize( void )
     if ( IsInitialized() )
     {
         // Already initialized
+        TRACE_EXIT;
         return( TCALREADYINIT );
     }
 
@@ -871,7 +961,7 @@ int CSqliteConfig::GetNode( int nid
     sqlStmt = "select p.pNid, l.lNid, p.nodeName, l.firstCore, l.lastCore,"
                    " p.excFirstCore, p.excLastCore, l.processors, l.roles"
                    "  from pnode p, lnode l where p.pNid = l.pNid"
-                   "   and l.nid = ?";
+                   "   and l.lNid = ?";
 
     rc = sqlite3_prepare_v2( db_
                            , sqlStmt
@@ -898,6 +988,10 @@ int CSqliteConfig::GetNode( int nid
                       "[%s] sqlite3_bind_int(nid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -941,7 +1035,6 @@ int CSqliteConfig::GetNode( int nid
     }
     else if ( rc == SQLITE_DONE )
     {
-        // Destroy prepared statement object
         if ( prepStmt != NULL )
         {
             sqlite3_finalize( prepStmt );
@@ -952,6 +1045,7 @@ int CSqliteConfig::GetNode( int nid
             trace_printf("%s@%d Finished processing logical nodes.\n",
                          method_name, __LINE__);
         }
+        TRACE_EXIT;
         return( TCDBNOEXIST );
     }
     else
@@ -961,16 +1055,18 @@ int CSqliteConfig::GetNode( int nid
                 , "[%s] (%s) failed, error: %s\n"
                 , method_name, sqlStmt, sqlite3_errmsg(db_) );
         TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+        if ( prepStmt != NULL )
+        {
+            sqlite3_finalize( prepStmt );
+        }
         TRACE_EXIT;
         return( TCDBOPERROR );
     }
 
-    // Destroy prepared statement object
     if ( prepStmt != NULL )
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -1036,6 +1132,10 @@ int CSqliteConfig::GetNode( const char *name
                     , "[%s] sqlite3_bind_text(name) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -1079,7 +1179,6 @@ int CSqliteConfig::GetNode( const char *name
     }
     else if ( rc == SQLITE_DONE )
     {
-        // Destroy prepared statement object
         if ( prepStmt != NULL )
         {
             sqlite3_finalize( prepStmt );
@@ -1090,7 +1189,7 @@ int CSqliteConfig::GetNode( const char *name
             trace_printf("%s@%d Finished processing logical nodes.\n",
                          method_name, __LINE__);
         }
-
+        TRACE_EXIT;
         return( TCDBNOEXIST );
     }
     else
@@ -1100,6 +1199,10 @@ int CSqliteConfig::GetNode( const char *name
                 , "[%s] (%s) failed, error: %s\n"
                 , method_name, sqlStmt, sqlite3_errmsg(db_) );
         TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+        if ( prepStmt != NULL )
+        {
+            sqlite3_finalize( prepStmt );
+        }
         TRACE_EXIT;
         return( TCDBOPERROR );
     }
@@ -1109,7 +1212,6 @@ int CSqliteConfig::GetNode( const char *name
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -1218,29 +1320,22 @@ int CSqliteConfig::GetNodes( int &count
             else
             {
                 count = nodeCount;
-                // Destroy prepared statement object
                 if ( prepStmt != NULL )
                 {
                     sqlite3_finalize( prepStmt );
                 }
+                TRACE_EXIT;
                 return( TCDBTRUNCATE );
             }
         }
         else if ( rc == SQLITE_DONE )
         {
             count = nodeCount;
-            // Destroy prepared statement object
-            if ( prepStmt != NULL )
-            {
-                sqlite3_finalize( prepStmt );
-            }
-
             if ( TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST) )
             {
                 trace_printf("%s@%d Finished processing logical nodes.\n",
                              method_name, __LINE__);
             }
-
             break;
         }
         else
@@ -1250,11 +1345,19 @@ int CSqliteConfig::GetNodes( int &count
                     , "[%s] (%s) failed, error: %s\n"
                     , method_name, sqlStmt, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
     }
 
+    if ( prepStmt != NULL )
+    {
+        sqlite3_finalize( prepStmt );
+    }
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -1313,6 +1416,10 @@ int CSqliteConfig::GetPNode( int pNid
                       "[%s] sqlite3_bind_int(pNid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -1346,12 +1453,6 @@ int CSqliteConfig::GetPNode( int pNid
     }
     else if ( rc == SQLITE_DONE )
     {
-        // Destroy prepared statement object
-        if ( prepStmt != NULL )
-        {
-            sqlite3_finalize( prepStmt );
-        }
-
         if ( TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST) )
         {
             trace_printf("%s@%d Finished processing logical nodes.\n",
@@ -1365,10 +1466,18 @@ int CSqliteConfig::GetPNode( int pNid
                 , "[%s] (%s) failed, error: %s\n"
                 , method_name, sqlStmt, sqlite3_errmsg(db_) );
         TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+        if ( prepStmt != NULL )
+        {
+            sqlite3_finalize( prepStmt );
+        }
         TRACE_EXIT;
         return( TCDBOPERROR );
     }
 
+    if ( prepStmt != NULL )
+    {
+        sqlite3_finalize( prepStmt );
+    }
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -1426,6 +1535,10 @@ int CSqliteConfig::GetPNode( const char *name
                 , "[%s] sqlite3_bind_text(name) failed, error: %s\n"
                 , method_name,  sqlite3_errmsg(db_) );
         TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+        if ( prepStmt != NULL )
+        {
+            sqlite3_finalize( prepStmt );
+        }
         TRACE_EXIT;
         return( TCDBOPERROR );
     }
@@ -1471,16 +1584,18 @@ int CSqliteConfig::GetPNode( const char *name
                 , "[%s] (%s) failed, error: %s\n"
                 , method_name, sqlStmt, sqlite3_errmsg(db_) );
         TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+        if ( prepStmt != NULL )
+        {
+            sqlite3_finalize( prepStmt );
+        }
         TRACE_EXIT;
         return( TCDBOPERROR );
     }
 
-    // Destroy prepared statement object
     if ( prepStmt != NULL )
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -1577,6 +1692,10 @@ int CSqliteConfig::GetSNodes( int &count
                             , "[%s], Error: Invalid node configuration\n"
                             , method_name);
                     TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+                    if ( prepStmt != NULL )
+                    {
+                        sqlite3_finalize( prepStmt );
+                    }
                     TRACE_EXIT;
                     return( TCDBOPERROR );
                 }
@@ -1585,29 +1704,22 @@ int CSqliteConfig::GetSNodes( int &count
             else
             {
                 count = snodeCount;
-                // Destroy prepared statement object
                 if ( prepStmt != NULL )
                 {
                     sqlite3_finalize( prepStmt );
                 }
+                TRACE_EXIT;
                 return( TCDBTRUNCATE );
             }
         }
         else if ( rc == SQLITE_DONE )
         {
             count = snodeCount;
-            // Destroy prepared statement object
-            if ( prepStmt != NULL )
-            {
-                sqlite3_finalize( prepStmt );
-            }
-
             if ( TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST) )
             {
                 trace_printf("%s@%d Finished processing spare nodes.\n",
                              method_name, __LINE__);
             }
-
             break;
         }
         else
@@ -1617,11 +1729,19 @@ int CSqliteConfig::GetSNodes( int &count
                     , "[%s] (%s) failed, error: %s\n"
                     , method_name, sqlStmt, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
     }
 
+    if ( prepStmt != NULL )
+    {
+        sqlite3_finalize( prepStmt );
+    }
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -1697,6 +1817,10 @@ int CSqliteConfig::GetSNodeData( int pnid
                       "[%s] sqlite3_bind_int(pnid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -1733,18 +1857,11 @@ int CSqliteConfig::GetSNodeData( int pnid
         else if ( rc == SQLITE_DONE )
         {
             spareNodeConfig.spare_count = spareCount;
-            // Destroy prepared statement object
-            if ( prepStmt != NULL )
-            {
-                sqlite3_finalize( prepStmt );
-            }
-
             if ( TcTraceSettings & (TC_TRACE_NODE | TC_TRACE_REQUEST) )
             {
                 trace_printf("%s@%d Finished processing spared node set.\n",
                              method_name, __LINE__);
             }
-
             break;
         }
         else
@@ -1754,11 +1871,19 @@ int CSqliteConfig::GetSNodeData( int pnid
                     , "[%s] (%s) failed, error: %s\n"
                     , method_name, sqlStmt, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
     }
 
+    if ( prepStmt != NULL )
+    {
+        sqlite3_finalize( prepStmt );
+    }
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -1830,6 +1955,10 @@ int CSqliteConfig::GetPersistProcess( const char *persistPrefix
                     , "[%s] sqlite3_bind_text(keyName) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -1864,8 +1993,8 @@ int CSqliteConfig::GetPersistProcess( const char *persistPrefix
 
             // Parse the value based on the key
             rs = SetPersistProcessData( persistKey
-                                       , persistValue
-                                       , persistConfig );
+                                      , persistValue
+                                      , persistConfig );
             if ( rs != TCSUCCESS )
             {
                 char buf[TC_LOG_BUF_SIZE];
@@ -1874,6 +2003,10 @@ int CSqliteConfig::GetPersistProcess( const char *persistPrefix
                           "configuration, key=%s, value=%s\n"
                         , method_name, persistKey, persistValue );
                 TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+                if ( prepStmt != NULL )
+                {
+                    sqlite3_finalize( prepStmt );
+                }
                 TRACE_EXIT;
                 return( TCDBOPERROR );
             }
@@ -1894,11 +2027,19 @@ int CSqliteConfig::GetPersistProcess( const char *persistPrefix
                     , "[%s] (%s) failed, error: %s\n"
                     , method_name, sqlStmtStmt, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
     }
 
+    if ( prepStmt != NULL )
+    {
+        sqlite3_finalize( prepStmt );
+    }
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -1974,6 +2115,7 @@ int CSqliteConfig::GetPersistProcessKeys( const char *persistProcessKeys )
         {
             sqlite3_finalize( prepStmt );
         }
+        TRACE_EXIT;
         return( TCDBNOEXIST );
     }
     else
@@ -1983,6 +2125,10 @@ int CSqliteConfig::GetPersistProcessKeys( const char *persistProcessKeys )
                 , "[%s] (%s) failed, error: %s\n"
                 , method_name, sqlStmt, sqlite3_errmsg(db_) );
         TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+        if ( prepStmt != NULL )
+        {
+            sqlite3_finalize( prepStmt );
+        }
         TRACE_EXIT;
         return( TCDBOPERROR );
     }
@@ -1991,7 +2137,6 @@ int CSqliteConfig::GetPersistProcessKeys( const char *persistProcessKeys )
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -2085,11 +2230,11 @@ int CSqliteConfig::GetRegistryClusterSet( int &count
             else
             {
                 count = entryNum;
-                // Destroy prepared statement object
                 if ( prepStmt != NULL )
                 {
                     sqlite3_finalize( prepStmt );
                 }
+                TRACE_EXIT;
                 return( TCDBTRUNCATE );
             }
         }
@@ -2105,19 +2250,21 @@ int CSqliteConfig::GetRegistryClusterSet( int &count
                     , "[%s] (%s) failed, error: %s\n"
                     , method_name, sqlStmt, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
     }
 
-    // Destroy prepared statement object
+    count =entryNum;
+
     if ( prepStmt != NULL )
     {
         sqlite3_finalize( prepStmt );
     }
-
-    count =entryNum;
-        
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -2218,6 +2365,7 @@ int CSqliteConfig::GetRegistryProcessSet( int &count
                 {
                     sqlite3_finalize( prepStmt );
                 }
+                TRACE_EXIT;
                 return( TCDBTRUNCATE );
             }
         }
@@ -2240,17 +2388,19 @@ int CSqliteConfig::GetRegistryProcessSet( int &count
                     , "[%s] (%s) failed, error: %s\n"
                     , method_name, sqlStmt, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
     }
 
-    // Destroy prepared statement object
     if ( prepStmt != NULL )
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -2300,6 +2450,10 @@ int CSqliteConfig::GetUniqueString( int nid, int id, const char *uniqStr )
                       "[%s] sqlite3_bind_int(nid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2311,6 +2465,10 @@ int CSqliteConfig::GetUniqueString( int nid, int id, const char *uniqStr )
                       "[%s] sqlite3_bind_int(id) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2337,6 +2495,7 @@ int CSqliteConfig::GetUniqueString( int nid, int id, const char *uniqStr )
             {
                 sqlite3_finalize( prepStmt );
             }
+            TRACE_EXIT;
             return( TCDBNOEXIST );
         }
         else
@@ -2350,6 +2509,10 @@ int CSqliteConfig::GetUniqueString( int nid, int id, const char *uniqStr )
                     , "[%s] (%s) failed, nid=%d, id=%d, error: %s\n"
                     , method_name, sqlStmt, nid, id,sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2359,7 +2522,6 @@ int CSqliteConfig::GetUniqueString( int nid, int id, const char *uniqStr )
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -2416,6 +2578,10 @@ int CSqliteConfig::GetUniqueStringId( int nid
                       "[%s] sqlite3_bind_int(nid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2427,6 +2593,10 @@ int CSqliteConfig::GetUniqueStringId( int nid
                     , "[%s] sqlite3_bind_text(uniqStr) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2449,6 +2619,7 @@ int CSqliteConfig::GetUniqueStringId( int nid
             {
                 sqlite3_finalize( prepStmt );
             }
+            TRACE_EXIT;
             return( TCDBNOEXIST );
         }
         else
@@ -2462,6 +2633,10 @@ int CSqliteConfig::GetUniqueStringId( int nid
                     , "[%s] (%s) failed, nid=%d, id=%d, error: %s\n"
                     , method_name, sqlStmt, nid, id,sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2471,7 +2646,6 @@ int CSqliteConfig::GetUniqueStringId( int nid
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -2520,6 +2694,10 @@ int CSqliteConfig::GetUniqueStringIdMax( int nid, int &id )
                       "[%s] sqlite3_bind_int(nid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2543,6 +2721,7 @@ int CSqliteConfig::GetUniqueStringIdMax( int nid, int &id )
             {
                 sqlite3_finalize( prepStmt );
             }
+            TRACE_EXIT;
             return( TCDBNOEXIST );
         }
         else
@@ -2552,6 +2731,10 @@ int CSqliteConfig::GetUniqueStringIdMax( int nid, int &id )
                     , "[%s] (%s) failed, nid=%d, error: %s\n"
                     , method_name, sqlStmt, nid, sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2561,7 +2744,6 @@ int CSqliteConfig::GetUniqueStringIdMax( int nid, int &id )
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -2626,6 +2808,10 @@ int CSqliteConfig::SaveLNodeData( int         nid
                       "[%s] sqlite3_bind_int(nid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2637,6 +2823,10 @@ int CSqliteConfig::SaveLNodeData( int         nid
                       "[%s] sqlite3_bind_int(pnid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2648,6 +2838,10 @@ int CSqliteConfig::SaveLNodeData( int         nid
                       "[%s] sqlite3_bind_int(processors) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2659,6 +2853,10 @@ int CSqliteConfig::SaveLNodeData( int         nid
                       "[%s] sqlite3_bind_int(roles) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2670,6 +2868,10 @@ int CSqliteConfig::SaveLNodeData( int         nid
                       "[%s] sqlite3_bind_int(firsCore) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2681,6 +2883,10 @@ int CSqliteConfig::SaveLNodeData( int         nid
                       "[%s] sqlite3_bind_int(lastCore) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2697,6 +2903,10 @@ int CSqliteConfig::SaveLNodeData( int         nid
                     , method_name, sqlStmt, sqlite3_errmsg(db_) 
                     , nid, pnid, processors, roles, firstCore, lastCore );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2706,7 +2916,6 @@ int CSqliteConfig::SaveLNodeData( int         nid
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -2767,6 +2976,10 @@ int CSqliteConfig::SavePNodeData( const char *name
                       "[%s] sqlite3_bind_int(pnid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2778,6 +2991,10 @@ int CSqliteConfig::SavePNodeData( const char *name
                     , "[%s] sqlite3_bind_text(name) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2789,6 +3006,10 @@ int CSqliteConfig::SavePNodeData( const char *name
                       "[%s] sqlite3_bind_int(excludedFirstCore) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2800,6 +3021,10 @@ int CSqliteConfig::SavePNodeData( const char *name
                       "[%s] sqlite3_bind_int(excludedLastCore) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2815,6 +3040,10 @@ int CSqliteConfig::SavePNodeData( const char *name
                     , method_name, sqlStmt, sqlite3_errmsg(db_)
                     , pnid, name, excludedFirstCore, excludedLastCore );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -2824,7 +3053,6 @@ int CSqliteConfig::SavePNodeData( const char *name
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }
@@ -3065,6 +3293,10 @@ int CSqliteConfig::UpdatePNodeData( int         pnid
                     , "[%s] sqlite3_bind_text(name) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -3078,6 +3310,10 @@ int CSqliteConfig::UpdatePNodeData( int         pnid
                       "[%s] sqlite3_bind_int(excludedFirstCore) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -3091,6 +3327,10 @@ int CSqliteConfig::UpdatePNodeData( int         pnid
                       "[%s] sqlite3_bind_int(excludedLastCore) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -3104,6 +3344,10 @@ int CSqliteConfig::UpdatePNodeData( int         pnid
                       "[%s] sqlite3_bind_int(:pNid) failed, error: %s\n"
                     , method_name,  sqlite3_errmsg(db_) );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_CRIT, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -3120,6 +3364,10 @@ int CSqliteConfig::UpdatePNodeData( int         pnid
                     , method_name, sqlStmt, sqlite3_errmsg(db_)
                     , name, excludedFirstCore, excludedLastCore, pnid );
             TcLogWrite( SQLITE_DB_ACCESS_ERROR, TC_LOG_ERR, buf );
+            if ( prepStmt != NULL )
+            {
+                sqlite3_finalize( prepStmt );
+            }
             TRACE_EXIT;
             return( TCDBOPERROR );
         }
@@ -3129,7 +3377,6 @@ int CSqliteConfig::UpdatePNodeData( int         pnid
     {
         sqlite3_finalize( prepStmt );
     }
-
     TRACE_EXIT;
     return( TCSUCCESS );
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/23bb89af/core/sqf/monitor/linux/trafconfig.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/trafconfig.cxx b/core/sqf/monitor/linux/trafconfig.cxx
index f89eda1..5194800 100644
--- a/core/sqf/monitor/linux/trafconfig.cxx
+++ b/core/sqf/monitor/linux/trafconfig.cxx
@@ -135,12 +135,19 @@ TC_Export int tc_put_node( node_configuration_t *node_config )
 {
     int rc = TCDBOPERROR;
 
-    rc = SqliteConfig.SaveLNodeData( node_config->nid
+    rc = SqliteConfig.SavePNodeData( node_config->node_name
                                    , node_config->pnid
-                                   , node_config->first_core
-                                   , node_config->last_core
-                                   , node_config->processors
-                                   , node_config->roles );
+                                   , node_config->excluded_first_core
+                                   , node_config->excluded_last_core );
+    if (rc == TCSUCCESS)
+    {
+        rc = SqliteConfig.SaveLNodeData( node_config->nid
+                                       , node_config->pnid
+                                       , node_config->first_core
+                                       , node_config->last_core
+                                       , node_config->processors
+                                       , node_config->roles );
+    }
 
     return( rc );
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/23bb89af/core/sqf/monitor/linux/trafconfigtrace.cxx
----------------------------------------------------------------------
diff --git a/core/sqf/monitor/linux/trafconfigtrace.cxx b/core/sqf/monitor/linux/trafconfigtrace.cxx
index 170b446..c8868da 100644
--- a/core/sqf/monitor/linux/trafconfigtrace.cxx
+++ b/core/sqf/monitor/linux/trafconfigtrace.cxx
@@ -188,7 +188,7 @@ void CTrafConfigTrace::TraceInit( bool traceEnabled
     {
         traceSettingsSaved_ = TcTraceSettings;
 
-        if (pfname != NULL)
+        if (strlen( trace_file_name))
         {
             trace_init(trace_file_name,
                        false,  // don't append pid to file name

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/23bb89af/core/sqf/sql/scripts/sqconfig
----------------------------------------------------------------------
diff --git a/core/sqf/sql/scripts/sqconfig b/core/sqf/sql/scripts/sqconfig
index 85f7eb7..4de7fd8 100644
--- a/core/sqf/sql/scripts/sqconfig
+++ b/core/sqf/sql/scripts/sqconfig
@@ -19,24 +19,20 @@
 #
 # @@@ END COPYRIGHT @@@
 
-begin node
-_virtualnodes 2
-end node
+begin persist
 
 #
-# The folling process types are persistent and have special process management:
+# The following PROCESS_TYPEs are persistent and have special process management:
 #    DTM
 #    TMID
 #    SSMP
 #    PSD
 #    WDG
 #
-# Generic persistent processes are of process type:
+# Generic persistent processes are of PROCESS_TYPE:
 #    PERSIST
 #
 
-begin persist
-
 PERSIST_PROCESS_KEYS = DTM,TMID,SSCP,SSMP,PSD,WDG
 
 DTM_PROCESS_NAME     = $TM%nid+
@@ -88,3 +84,4 @@ WDG_PERSIST_RETRIES  = 10,60
 WDG_PERSIST_ZONES    = %zid
 
 end persist
+

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/23bb89af/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/TrxTransactionState.java.tmpl
----------------------------------------------------------------------
diff --git a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/TrxTransactionState.java.tmpl b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/TrxTransactionState.java.tmpl
index 6ec061d..46351d7 100644
--- a/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/TrxTransactionState.java.tmpl
+++ b/core/sqf/src/seatrans/hbase-trx/src/main/java/org/apache/hadoop/hbase/regionserver/transactional/TrxTransactionState.java.tmpl
@@ -76,6 +76,7 @@ import org.apache.hadoop.hbase.regionserver.ScannerContext;
 #endif
 #ifdef CDH5.7 APACHE1.2
 import org.apache.hadoop.hbase.HBaseConfiguration;
+import org.apache.hadoop.conf.Configuration;
 #endif
 import org.apache.hadoop.hbase.regionserver.wal.WALEdit;
 import org.apache.hadoop.hbase.util.Bytes;
@@ -90,7 +91,9 @@ import org.apache.hadoop.io.DataInputBuffer;
 public class TrxTransactionState extends TransactionState {
 
     static java.lang.reflect.Constructor c1_0 = null;
-
+#ifdef CDH5.7 APACHE1.2
+    static Configuration config = HBaseConfiguration.create();
+#endif
     static {
         String version = VersionInfo.getVersion();// the hbase version string, eg. "0.6.3-dev"
         LOG.info("Got info of Class ScanQueryMatcher for HBase version :" + version);
@@ -694,7 +697,7 @@ public class TrxTransactionState extends TransactionState {
             
             //Store.ScanInfo scaninfo = new Store.ScanInfo(null, 0, 1, HConstants.FOREVER, false, 0, Cell.COMPARATOR);
 #ifdef CDH5.7 APACHE1.2
-            ScanInfo scaninfo = new ScanInfo(HBaseConfiguration.create(), null, 0, 1, HConstants.FOREVER,KeepDeletedCells.FALSE, 0, KeyValue.COMPARATOR);
+            ScanInfo scaninfo = new ScanInfo(getConfig(), null, 0, 1, HConstants.FOREVER,KeepDeletedCells.FALSE, 0, KeyValue.COMPARATOR);
 #else
             ScanInfo scaninfo = new ScanInfo(null, 0, 1, HConstants.FOREVER,KeepDeletedCells.FALSE, 0, KeyValue.COMPARATOR);
 #endif
@@ -1032,4 +1035,10 @@ public class TrxTransactionState extends TransactionState {
             }
         }
     }
+    
+#ifdef CDH5.7 APACHE1.2
+    public Configuration getConfig() {
+      return config;
+    }
+#endif
 }

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/23bb89af/install/installer/addNode_step1
----------------------------------------------------------------------
diff --git a/install/installer/addNode_step1 b/install/installer/addNode_step1
index 05302b0..66e6209 100755
--- a/install/installer/addNode_step1
+++ b/install/installer/addNode_step1
@@ -202,84 +202,6 @@ sudo chmod 777 $TRAF_CONFIG
 
 }
 
-function removeNodeExclude {
-
-source $TRAF_CONFIG
-temp=""
-
-for node in $TRAF_EXCLUDE_LIST
-do
-   if [[ ! $NODES  =~ .*$node.* ]]; then
-      temp="$temp $node"
-   fi
-
-done
-excludeCount=$(echo $TRAF_EXCLUDE_LIST | wc -w)
-tempCount=$(echo $temp | wc -w)
-
-
-if [[ "$excludeCount" -eq "$tempCount" ]]; then
-#New node name
-   changeNodeName
-   NAME_CHANGE="true"
-   sudo chmod 777 $TRAF_CONFIG
-   sed -i '/NAME_CHANGE\=/d' $TRAF_CONFIG
-   echo "export NAME_CHANGE=\"$NAME_CHANGE\"" >> $TRAF_CONFIG
-   sudo chmod 777 $TRAF_CONFIG
-else
-   TRAF_EXCLUDE_LIST=$temp
-   sudo chmod 777 $TRAF_CONFIG
-   sed -i '/TRAF_EXCLUDE_LIST\=/d' $TRAF_CONFIG
-   echo "export TRAF_EXCLUDE_LIST=\"$TRAF_EXCLUDE_LIST\"" >> $TRAF_CONFIG
-   sudo chmod 777 $TRAF_CONFIG
-fi
-
-}
-
-function changeNodeName {
-
-source $TRAF_CONFIG
-
-for node in $NODES
-do
-
-   export oldNODENAME=$(echo $TRAF_EXCLUDE_LIST | head -n1 | awk '{print $1;}')
-   temp=""
-
-   for nodes in $TRAF_EXCLUDE_LIST
-   do
-       if [[ "$oldNODENAME" != $nodes ]]; then
-          temp="$temp $nodes"
-       fi
-   done 
-   export TRAF_EXCLUDE_LIST=$temp
-
-   oldToNew="$oldNODENAME $node"
-   echo
-   echo "********************************************************************"
-   echo "***VERY IMPORTANT: User must change old user name to a new user name."
-   echo "***VERY IMPORTANT: open another session and sudo su trafodion"
-   echo "***VERY IMPORTANT: sqshell -a"
-   echo "***VERY IMPORTANT: node name $oldToNew"
-   sleep 5
-   echo -n "***VERY IMPORTANT: Press any key when complete."
-   read answer  
-   echo
-   echo "********************************************************************"
-  
-   sudo sed -i -e "s/\<$oldNODENAME\>/$node/g" $TRAF_HOME/tmp/cluster.conf
-   sudo sed -i -e "s/\<$oldNODENAME\>/$node/g" $TRAF_HOME/sql/scripts/sqconfig
-   sudo rm -rf $TRAF_HOME/tmp/se*
-   sudo rm -rf $TRAF_HOME/sql/scripts/se*
-   sudo chmod 777 $TRAF_CONFIG
-   sed -i '/TRAF_EXCLUDE_LIST\=/d' $TRAF_CONFIG
-   echo "export TRAF_EXCLUDE_LIST=\"$TRAF_EXCLUDE_LIST\"" >> $TRAF_CONFIG
-   sudo chmod 777 $TRAF_CONFIG
-
-done
-
-}
-
 function createConfigDir {
 
 $TRAF_NEW_PDSH sudo mkdir -p /etc/trafodion
@@ -328,6 +250,7 @@ $TRAF_NEW_PDSH rm -rf trafodion-util*
 function printMessage {
 
 source $TRAF_CONFIG
+echo
 echo "***IMPORTANT: Go restart HBase on new nodes"
 echo "***IMPORTANT: Wait until that is done... then..."
 echo "***IMPORTANT: Ready to run addNode_step2"
@@ -342,7 +265,6 @@ checkForHA
 addNewNodesConfig
 copyHBaseTrx
 createNewNodes
-removeNodeExclude
 createConfigDir
 copyConfig
 checkHBaseTrx

http://git-wip-us.apache.org/repos/asf/incubator-trafodion/blob/23bb89af/install/installer/addNode_step2
----------------------------------------------------------------------
diff --git a/install/installer/addNode_step2 b/install/installer/addNode_step2
index ad52013..9a28cbb 100755
--- a/install/installer/addNode_step2
+++ b/install/installer/addNode_step2
@@ -153,8 +153,10 @@ function editTrafbashrc {
 source $TRAF_CONFIG
 
 sudo chmod 777 $HOME_DIR/$TRAF_USER/.bashrc
-sudo sed -i -e "s@export NODE_LIST=.*@export NODE_LIST=\"$NODE_LIST\"@" $HOME_DIR/$TRAF_USER/.bashrc
-sudo sed -i -e "s@export MY_NODES=.*@export MY_NODES=\"$MY_NODES\"@" $HOME_DIR/$TRAF_USER/.bashrc
+#sudo sed -i -e "s@export NODE_LIST=.*@export NODE_LIST=\"$NODE_LIST\"@" $HOME_DIR/$TRAF_USER/.bashrc
+#sudo sed -i -e "s@export MY_NODES=.*@export MY_NODES=\"$MY_NODES\"@" $HOME_DIR/$TRAF_USER/.bashrc
+sudo sed -i -e "/export NODE_LIST/d" $HOME_DIR/$TRAF_USER/.bashrc
+sudo sed -i -e "/export MY_NODES=/d" $HOME_DIR/$TRAF_USER/.bashrc
 
 }
 
@@ -172,43 +174,6 @@ $TRAF_PDSH sudo chmod 644 $HOME_DIR/$TRAF_USER/.bashrc
 
 }
 
-function copyClusterConf {
-
-source $TRAF_CONFIG
-echo "***INFO: Copying over new cluster.conf file" 
-
-echo "***IMPORTANT*** Ignore copy errors to new node."
-echo
-sleep 5
-
-sudo cp $TRAF_HOME/tmp/cluster.conf $PWD
-sudo chown $(whoami).$(whoami) $PWD/cluster.conf
-$TRAF_PDCP $PWD/cluster.conf $HOME
-$TRAF_PDSH sudo cp $HOME/cluster.conf $TRAF_HOME/tmp/cluster.conf 2>&1 > /dev/null
-$TRAF_PDSH sudo chown $TRAF_USER.trafodion $TRAF_HOME/tmp/cluster.conf 2>&1 > /dev/null
-$TRAF_PDSH sudo rm $HOME/cluster.conf
-
-}
-
-function copySQconfig {
-
-source $TRAF_CONFIG
-echo "***INFO: Copying over new sqconfig file"
-
-echo "***IMPORTANT*** Ignore copy errors to new node."
-echo
-sleep 5
-
-sudo cp -r $TRAF_HOME/sql/scripts/sqconfig $PWD
-sudo chown $(whoami).$(whoami) $PWD/sqconfig
-$TRAF_PDCP $PWD/sqconfig $HOME
-$TRAF_PDSH sudo cp $HOME/sqconfig $TRAF_HOME/sql/scripts/sqconfig 2>&1 > /dev/null
-$TRAF_PDSH sudo chown $TRAF_USER.trafodion $TRAF_HOME/sql/scripts/sqconfig 2>&1 > /dev/null
-$TRAF_PDSH sudo rm $HOME/sqconfig
-
-
-}
-
 function addTraftoHBase {
 
 echo "***INFO: Adding $TRAF_USER userid  to $HBASE_GROUP group"
@@ -285,7 +250,7 @@ function copyAll {
 source $TRAF_CONFIG
 echo 
 echo "***IMPORTANT: Copying files to $NEW_NODES"
-echo "***IMPORTANT: This will take some time, it's alot of file. Please wait...."
+echo "***IMPORTANT: This will take some time, it's a lot of file. Please wait...."
 echo 
 sudo mkdir -p $HOME/tmpTraf/
 $TRAF_NEW_PDSH sudo rm -rf $HOME_DIR/$TRAF_USER/.ssh
@@ -363,19 +328,67 @@ $TRAF_PDSH rm -r $HOME/tmpTraf
 }
 
 
+function copysqConfig {
+
+source $TRAF_CONFIG
+
+$TRAF_PDSH mkdir -p $HOME/tmpTraf
+sudo cp -r $TRAF_HOME/sql/scripts/sqconfig $HOME/tmpTraf
+sudo chown -R $(whoami).$(whoami) $HOME/tmpTraf
+$TRAF_PDCP -r $HOME/tmpTraf $HOME
+$TRAF_PDSH sudo cp -rf $HOME/tmpTraf/sqconfig $TRAF_HOME/sql/scripts 2>&1 > /dev/null
+$TRAF_PDSH sudo chown -R $TRAF_USER.trafodion $TRAF_HOME/sql/scripts 2>&1 > /dev/null
+$TRAF_PDSH rm -r $HOME/tmpTraf
+
+}
+
+
 function printMessage {
 
 source $TRAF_CONFIG
 echo
 echo "***IMPORTANT: EXIT OUT OF ALL EXISTING SHELLS, need to pick up new environment variables"
-echo "***IMPORTANT: Node is ready to be added"
-echo "***IMPORTANT: sudo su $TRAF_USER"
-echo "***IMPORTANT: sqshell -a"
-echo "***IMPORTANT: up <new node>"
+echo "***IMPORTANT: All node(s) should be added!"
+#echo "***IMPORTANT: Node is ready to be added"
+#echo "***IMPORTANT: sudo su $TRAF_USER"
+#echo "***IMPORTANT: sqshell -a"
+#echo "***IMPORTANT: up <new node>"
 echo
 
 }
 
+function addUpNodes {
+
+for node in $NEW_NODES
+do 
+  
+    nodeToAdd="node-name $node, cores $CORES, processors $PROCESSORS, roles connection,aggregation,storage"
+
+    sudo su $TRAF_USER --login --command "cd $TRAF_HOME/sql/scripts; echo \"node add $nodeToAdd \" | sqshell -a"
+    sleep 30
+    sudo su $TRAF_USER --login --command "cd $TRAF_HOME/sql/scripts; echo \"node up $node\" | sqshell -a"
+    sleep 30
+
+done
+
+}
+
+function sqRegen {
+
+sudo su $TRAF_USER --login --command "cd $TRAF_HOME/sql/scripts; sqregen -config"
+
+}
+
+function rmsStart {
+
+sudo su $TRAF_USER --login --command "cd $SQ_ROOT/sql/scripts; rmsstart"
+}
+
+function dcsStart {
+
+sudo su $TRAF_USER --login --command "cd $TRAF_HOME/sql/scripts; dcsstart"
+}
+
 function cleanUp {
 
 $TRAF_PDSH rm -rf $HOME/hbase-site*
@@ -411,8 +424,12 @@ if [[ "$ENABLE_HA" == "true" ]]; then
    editDCSBackUp
 fi
 addTraftoHBase
-copyClusterConf
-copySQconfig
 copySqcert
-printMessage
+addUpNodes
+sqRegen
+copysqConfig
+rmsStart
+dcsStart
 cleanUp
+printMessage
+