diff --git a/core/conn/odbc/src/odbc/nsksrvr/SrvrMain.cpp b/core/conn/odbc/src/odbc/nsksrvr/SrvrMain.cpp
index c23406f..83e2fa5 100644
--- a/core/conn/odbc/src/odbc/nsksrvr/SrvrMain.cpp
+++ b/core/conn/odbc/src/odbc/nsksrvr/SrvrMain.cpp
@@ -257,15 +257,15 @@
         if (getenv("TRAF_MULTIPLE_SQL_LOG_FILE"))
            singleSqlLogFile = FALSE;
         if (singleSqlLogFile) {
-	   sprintf( logNameSuffix, "_%d.log", myNid );
            lv_configFileName = "log4cxx.trafodion.sql.config";
+	   CommonLogger::instance().initLog4cxx(lv_configFileName);
         }
         else 
         {
 	   sprintf( logNameSuffix, "_%d_%d.log", myNid, myPid );
            lv_configFileName = "log4cxx.trafodion.masterexe.config";
+	   CommonLogger::instance().initLog4cxx(lv_configFileName, logNameSuffix);
         }
-	CommonLogger::instance().initLog4cxx(lv_configFileName, logNameSuffix);
 
     if(retcode == FALSE )
    {
diff --git a/core/sqf/conf/log4cxx.trafodion.auth.config b/core/sqf/conf/log4cxx.trafodion.auth.config
index ae8e5c9..c7181d4 100644
--- a/core/sqf/conf/log4cxx.trafodion.auth.config
+++ b/core/sqf/conf/log4cxx.trafodion.auth.config
@@ -24,7 +24,7 @@
 # Define some default values that can be overridden by system properties
 trafodion.root.logger=INFO, authAppender
 trafodion.log.dir=${TRAF_LOG}
-trafodion.log.filename.suffix=${TRAFODION_LOG_FILENAME_SUFFIX}
+trafodion.log.filename.suffix=${HOSTNAME}
 
 # Define the root logger to the system property "trafodion.root.logger".
 log4j.rootLogger=${trafodion.root.logger}
@@ -36,7 +36,7 @@
 # Daily Rolling File Appender
 #
 log4j.appender.authAppender=org.apache.log4j.RollingFileAppender
-log4j.appender.authAppender.file=${trafodion.log.dir}/dbsecurity${trafodion.log.filename.suffix}
+log4j.appender.authAppender.file=${trafodion.log.dir}/dbsecurity.${trafodion.log.filename.suffix}.log
 log4j.appender.authAppender.maxFileSize=100000000
 log4j.appender.authAppender.maxBackupIndex=1
 log4j.appender.authAppender.addPid=false
diff --git a/core/sqf/conf/log4cxx.trafodion.sql.config b/core/sqf/conf/log4cxx.trafodion.sql.config
index b8079b4..e55fdcf 100644
--- a/core/sqf/conf/log4cxx.trafodion.sql.config
+++ b/core/sqf/conf/log4cxx.trafodion.sql.config
@@ -23,7 +23,7 @@
 
 # Define some default values that can be overridden by system properties
 trafodion.log.dir=${TRAF_LOG}
-trafodion.log.filename.suffix=${TRAFODION_LOG_FILENAME_SUFFIX}
+trafodion.log.filename.suffix=${HOSTNAME}
 
 # Logging Threshold
 log4j.threshhold=ALL
@@ -31,7 +31,7 @@
 # Rolling File Appender
 #
 log4j.appender.sqlAppender=org.apache.log4j.RollingFileAppender
-log4j.appender.sqlAppender.file=${trafodion.log.dir}/trafodion.sql${trafodion.log.filename.suffix}
+log4j.appender.sqlAppender.file=${trafodion.log.dir}/trafodion.sql.${trafodion.log.filename.suffix}.log
 log4j.appender.sqlAppender.maxFileSize=100000000
 log4j.appender.sqlAppender.maxBackupIndex=1
 log4j.appender.sqlAppender.addPid=false
diff --git a/core/sqf/conf/log4cxx.trafodion.sscp.config b/core/sqf/conf/log4cxx.trafodion.sscp.config
index 2308bed..34ccde0 100644
--- a/core/sqf/conf/log4cxx.trafodion.sscp.config
+++ b/core/sqf/conf/log4cxx.trafodion.sscp.config
@@ -23,7 +23,7 @@
 
 # Define some default values that can be overridden by system properties
 trafodion.log.dir=${TRAF_LOG}
-trafodion.log.filename.suffix=${TRAFODION_LOG_FILENAME_SUFFIX}
+trafodion.log.filename.suffix=${HOSTNAME}
 
 # Logging Threshold
 log4j.threshhold=ALL
@@ -31,7 +31,7 @@
 # Rolling File Appender
 #
 log4j.appender.sscpAppender=org.apache.log4j.RollingFileAppender
-log4j.appender.sscpAppender.file=${trafodion.log.dir}/sscp${trafodion.log.filename.suffix}
+log4j.appender.sscpAppender.file=${trafodion.log.dir}/sscp.${trafodion.log.filename.suffix}.log
 log4j.appender.sscpAppender.maxFileSize=100000000
 log4j.appender.sscpAppender.maxBackupIndex=1
 log4j.appender.sscpAppender.addPid=false
diff --git a/core/sqf/conf/log4cxx.trafodion.ssmp.config b/core/sqf/conf/log4cxx.trafodion.ssmp.config
index e0ec9dc..512ce14 100644
--- a/core/sqf/conf/log4cxx.trafodion.ssmp.config
+++ b/core/sqf/conf/log4cxx.trafodion.ssmp.config
@@ -23,7 +23,7 @@
 
 # Define some default values that can be overridden by system properties
 trafodion.log.dir=${TRAF_LOG}
-trafodion.log.filename.suffix=${TRAFODION_LOG_FILENAME_SUFFIX}
+trafodion.log.filename.suffix=${HOSTNAME}
 
 # Logging Threshold
 log4j.threshhold=ALL
@@ -31,7 +31,7 @@
 # Rolling File Appender
 #
 log4j.appender.ssmpAppender=org.apache.log4j.RollingFileAppender
-log4j.appender.ssmpAppender.file=${trafodion.log.dir}/ssmp${trafodion.log.filename.suffix}
+log4j.appender.ssmpAppender.file=${trafodion.log.dir}/ssmp.${trafodion.log.filename.suffix}.log
 log4j.appender.ssmpAppender.maxFileSize=100000000
 log4j.appender.ssmpAppender.maxBackupIndex=1
 log4j.appender.ssmpAppender.addPid=false
diff --git a/core/sqf/conf/log4cxx.trafodion.tm.config b/core/sqf/conf/log4cxx.trafodion.tm.config
index 5e99afb..fc482d1 100644
--- a/core/sqf/conf/log4cxx.trafodion.tm.config
+++ b/core/sqf/conf/log4cxx.trafodion.tm.config
@@ -23,7 +23,7 @@
 
 # Define some default values that can be overridden by system properties
 trafodion.log.dir=${TRAF_LOG}
-trafodion.log.filename.suffix=${TRAFODION_LOG_FILENAME_SUFFIX}
+trafodion.log.filename.suffix=${HOSTNAME}
 
 # Logging Threshold
 log4j.threshhold=ALL
@@ -31,7 +31,7 @@
 # Rolling File Appender
 #
 log4j.appender.tmAppender=org.apache.log4j.RollingFileAppender
-log4j.appender.tmAppender.file=${trafodion.log.dir}/tm${trafodion.log.filename.suffix}
+log4j.appender.tmAppender.file=${trafodion.log.dir}/tm.${trafodion.log.filename.suffix}.log
 log4j.appender.tmAppender.maxFileSize=100000000
 log4j.appender.tmAppender.maxBackupIndex=1
 log4j.appender.tmAppender.addPid=false
diff --git a/core/sqf/conf/log4j.dtm.config b/core/sqf/conf/log4j.dtm.config
index d4247c1..d605167 100644
--- a/core/sqf/conf/log4j.dtm.config
+++ b/core/sqf/conf/log4j.dtm.config
@@ -23,7 +23,7 @@
 
 # Define some default values that can be overridden by system properties
 dtm.log.dir=${TRAF_LOG}
-dtm.log.file=trafodion.dtm.log
+dtm.log.file=trafodion.dtm.${hostName}.log
 
 # Logging Threshold
 log4j.threshhold=ALL
diff --git a/core/sqf/conf/log4j.sql.config b/core/sqf/conf/log4j.sql.config
index 6b2ed43..a859313 100644
--- a/core/sqf/conf/log4j.sql.config
+++ b/core/sqf/conf/log4j.sql.config
@@ -22,7 +22,8 @@
 #
 
 # Define some default values that can be overridden by system properties
-trafodion.sql.log=${TRAF_LOG}/trafodion.sql.java.log
+sql.log.dir=${TRAF_LOG}
+sql.log.file=trafodion.sql.java.${hostName}.log
 
 # Logging Threshold
 log4j.threshhold=ALL
@@ -30,7 +31,7 @@
 # Rolling File Appender
 #
 log4j.appender.sqlAppender=org.apache.log4j.RollingFileAppender
-log4j.appender.sqlAppender.file=${trafodion.sql.log}
+log4j.appender.sqlAppender.file=${sql.log.dir}/${sql.log.file}
 log4j.appender.sqlAppender.layout=org.apache.log4j.PatternLayout
 log4j.appender.sqlAppender.layout.ConversionPattern=%d{ISO8601} %p %c{2}: %m%n
 log4j.appender.sqlAppender.immediateFlush=true
diff --git a/core/sqf/monitor/linux/monlogging.cxx b/core/sqf/monitor/linux/monlogging.cxx
index 42adff1..412a4e8 100644
--- a/core/sqf/monitor/linux/monlogging.cxx
+++ b/core/sqf/monitor/linux/monlogging.cxx
@@ -141,7 +141,7 @@
     logFileType_ = SBX_LOG_TYPE_LOGFILE;
 
     // Log4cxx logging
-    char   hostname[MAX_PROCESSOR_NAME] = {'\0'};
+    char   hostname[MAX_PROCESSOR_NAME + 1 ] = {'\0'};
     gethostname(hostname, MAX_PROCESSOR_NAME);
     char   logFileSuffix[MAX_FILE_NAME];
 
diff --git a/core/sqf/monitor/linux/process.cxx b/core/sqf/monitor/linux/process.cxx
index e2ebc58..a990711 100644
--- a/core/sqf/monitor/linux/process.cxx
+++ b/core/sqf/monitor/linux/process.cxx
@@ -1993,6 +1993,13 @@
     {
         trafVar_ = env ;
     }
+    static char   lv_hostname[MAX_PROCESSOR_NAME + 1 ] = {'\0'};
+    static bool   lv_hostname_obtained = false;
+    if ( ! lv_hostname_obtained ) {
+      gethostname(lv_hostname, MAX_PROCESSOR_NAME);
+      lv_hostname_obtained = true;
+    } 
+    hostNameVar_ = lv_hostname;
 
     // setup default environment variables from monitor or last CreateProcess call
     if (maxClientBuffers)
@@ -2068,6 +2075,7 @@
     setEnvStrVal ( childEnv, nextEnv, "TRAF_LOG", trafLog_.c_str() );
     setEnvStrVal ( childEnv, nextEnv, "TRAF_VAR", trafVar_.c_str() );
     setEnvStrVal ( childEnv, nextEnv, "USER", user );
+    setEnvStrVal ( childEnv, nextEnv, "HOSTNAME", hostNameVar_.c_str() );
     setEnvStrVal ( childEnv, nextEnv, "HOME", home );
     setEnvStrVal ( childEnv, nextEnv, "TERM", term );
     if (tz_exists)
diff --git a/core/sqf/monitor/linux/process.h b/core/sqf/monitor/linux/process.h
index 0f827b8..7178a19 100644
--- a/core/sqf/monitor/linux/process.h
+++ b/core/sqf/monitor/linux/process.h
@@ -542,6 +542,7 @@
     string       trafHome_;     // TRAF_HOME passed to object file
     string       trafLog_;      // TRAF_LOG passed to object file
     string       trafVar_;      // TRAF_VAR passed to object file
+    string       hostNameVar_;  // HOSTNAME passed to object file
 
     string       infile_;    // process's stdin
     string       outfile_;   // process's stdout
diff --git a/core/sqf/sqenvcom.sh b/core/sqf/sqenvcom.sh
index feda6fb..fcfc5b9 100644
--- a/core/sqf/sqenvcom.sh
+++ b/core/sqf/sqenvcom.sh
@@ -139,6 +139,7 @@
 export PDCP="$SQ_PDCP -R ssh"
 export TAR_DOWNLOAD_ROOT=$HOME/sqllogs
 export CACERTS_DIR=$HOME/cacerts
+export HOSTNAME
 
 # Get redhat major version
 # Examples:
diff --git a/core/sqf/sql/scripts/sqgen b/core/sqf/sql/scripts/sqgen
index 12ceb1e..bc3c943 100755
--- a/core/sqf/sql/scripts/sqgen
+++ b/core/sqf/sql/scripts/sqgen
@@ -219,6 +219,11 @@
     
         echo "$PDSH $ExNodeList mkdir -p $MPI_TMPDIR/tmp "
         $PDSH $ExNodeList mkdir -p $MPI_TMPDIR/tmp
+
+        if [[ -f $TRAF_CONF/ms.env.add ]]; then
+           echo "$PDCP $ExNodeList $TRAF_CONF/ms.env.add  $TRAF_CONF "
+           $PDCP $ExNodeList $TRAF_CONF/ms.env.add $TRAF_CONF
+        fi
     
     fi
 fi
@@ -259,28 +264,24 @@
     exit $sq_stat;
 fi
 
+if [[ -f $TRAF_CONF/ms.env.add ]]
+then
+   cat $TRAF_CONF/ms.env.add >> $TRAF_VAR/ms.env
+fi
+
+
 sq_seamonster=$SQ_SEAMONSTER
 if [ -f $SQESPENV_FILE ]; then
     if [[ $sq_seamonster == 1 ]]; then 
         echo
         echo "Enabling tdm_arkesp.env file in $TRAF_VAR/ms.env"
-        echo "cat $TRAF_VAR/ms.env | sed -e "s@^# SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@" > $TRAF_VAR/ms.env.TEMP"
-        if [ -f $TRAF_VAR/ms.env.TEMP ]; then
-            rm $TRAF_VAR/ms.env.TEMP
-        fi
-        cat $TRAF_VAR/ms.env | sed -e "s@^# SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@" > $TRAF_VAR/ms.env.TEMP
-        cp $TRAF_VAR/ms.env.TEMP $TRAF_VAR/ms.env
-        rm $TRAF_VAR/ms.env.TEMP
+        sed -i "s@^# SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@" $TRAF_VAR/ms.env
+        sed -i "s@^# SQ_PROPS_TDM_ARKCMP=tdm_arkcmp.env@SQ_PROPS_TDM_ARKCMP=tdm_arkcmp.env@" $TRAF_VAR/ms.env
     else
         echo
         echo "Disabling tdm_arkesp.env file in $TRAF_VAR/ms.env"
-        echo "cat $TRAF_VAR/ms.env | sed -e "s@^SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@# SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@" > $TRAF_VAR/ms.env.TEMP"
-        if [ -f $TRAF_VAR/ms.env.TEMP ]; then
-            rm $TRAF_VAR/ms.env.TEMP
-        fi
-        cat $TRAF_VAR/ms.env | sed -e "s@^SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@# SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@" > $TRAF_VAR/ms.env.TEMP
-        cp $TRAF_VAR/ms.env.TEMP $TRAF_VAR/ms.env
-        rm $TRAF_VAR/ms.env.TEMP
+        sed -i "s@^SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@# SQ_PROPS_TDM_ARKESP=tdm_arkesp.env@" $TRAF_VAR/ms.env
+        sed -i "s@^SQ_PROPS_TDM_ARKCMP=tdm_arkcmp.env@# SQ_PROPS_TDM_ARKCMP=tdm_arkcmp.env@" $TRAF_VAR/ms.env
     fi
 fi
 
@@ -288,10 +289,6 @@
 if [[ -z ${TRAF_AGENT} ]]; then
     if  [[ -n "$node_count" ]] && [[ "$node_count" -gt "1" ]]; then    
         echo
-        echo
-        echo "Copying the configuration and generated files to all the nodes in the cluster"
-        echo
-
         echo "Copying $TRAF_VAR/ms.env to $TRAF_VAR to all the nodes"
         echo "$PDCP $ExNodeList $TRAF_VAR/ms.env   $TRAF_VAR "
         $PDCP $ExNodeList $TRAF_VAR/ms.env   $TRAF_VAR
@@ -300,11 +297,12 @@
         echo "$PDCP $ExNodeList $SQCONFIG_FILE $SQCONFIG_PERSIST_FILE    $TRAF_CONF "
         $PDCP $ExNodeList $SQCONFIG_FILE $SQCONFIG_PERSIST_FILE    $TRAF_CONF
 
-
-        echo
-        echo "Copying $TRAF_VAR/seamonster.env to $TRAF_VAR to all the nodes"
-        echo "$PDCP $ExNodeList $TRAF_VAR/seamonster.env   $TRAF_VAR "
-        $PDCP $ExNodeList $TRAF_VAR/seamonster.env   $TRAF_VAR
+        if [[ -f "$TRAF_VAR/seamonster.env" ]]; then
+            echo
+            echo "Copying $TRAF_VAR/seamonster.env to $TRAF_VAR of all the nodes"
+            echo "$PDCP $ExNodeList $TRAF_VAR/seamonster.env   $TRAF_VAR "
+            $PDCP $ExNodeList $TRAF_VAR/seamonster.env   $TRAF_VAR
+        fi
 
         if [[ $sq_seamonster == 1 ]]; then 
             if [ -f $SQESPENV_FILE ]; then
diff --git a/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/HBaseTxClient.java b/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/HBaseTxClient.java
index 7e87546..23da11a 100644
--- a/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/HBaseTxClient.java
+++ b/core/sqf/src/seatrans/tm/hbasetmlib2/src/main/java/org/trafodion/dtm/HBaseTxClient.java
@@ -117,15 +117,14 @@
    static final Object mapLock = new Object();
 
    void setupLog4j() {
-        //System.out.println("In setupLog4J");
         System.setProperty("trafodion.logdir", System.getenv("TRAF_LOG"));
+        System.setProperty("hostName", System.getenv("HOSTNAME"));
         String confFile = System.getenv("TRAF_CONF")
             + "/log4j.dtm.config";
         PropertyConfigurator.configure(confFile);
     }
 
    public boolean init(String hBasePath, String zkServers, String zkPort) throws IOException {
-      //System.out.println("In init - hbp");
       setupLog4j();
       if (LOG.isDebugEnabled()) LOG.debug("Enter init, hBasePath:" + hBasePath);
       if (LOG.isTraceEnabled()) LOG.trace("mapTransactionStates " + mapTransactionStates + " entries " + mapTransactionStates.size());
diff --git a/core/sqf/src/tm/tmlibmsg.h b/core/sqf/src/tm/tmlibmsg.h
index 1049b7d..73a5d28 100644
--- a/core/sqf/src/tm/tmlibmsg.h
+++ b/core/sqf/src/tm/tmlibmsg.h
@@ -61,7 +61,6 @@
 #define SEABED_MAX_SETTABLE_RECVLIMIT_TM 25700
 #define SEABED_MAX_SETTABLE_SENDLIMIT_TM 25700
 
-#define MAX_FILE_NAME 64
 // MAXPROCESSNAME set at 16 for no good reason
 #define MAXPROCESSNAME 16
 // MAX_TRANS_SLOTS is the maximum number of transactions a TMLIB can have active at any time.
diff --git a/core/sqf/src/tm/tmlogging.cpp b/core/sqf/src/tm/tmlogging.cpp
index f5aab90..2d4361e 100644
--- a/core/sqf/src/tm/tmlogging.cpp
+++ b/core/sqf/src/tm/tmlogging.cpp
@@ -34,14 +34,8 @@
 
 int tm_init_logging()
 {
-	// Log4cxx logging
-        MS_Mon_Process_Info_Type  proc_info;
-        msg_mon_get_process_info_detail(NULL, &proc_info);
-        int myNid = proc_info.nid;
-        char logNameSuffix[32];
-        sprintf( logNameSuffix, "_%d.log", myNid );
-
-	CommonLogger::instance().initLog4cxx("log4cxx.trafodion.tm.config",logNameSuffix);
+    // Log4cxx logging
+    CommonLogger::instance().initLog4cxx("log4cxx.trafodion.tm.config");
     gv_log4cxx_initialized = true;
     ms_getenv_int ("TM_DUAL_LOGGING", &gv_dual_logging);
     return gv_dual_logging; 
diff --git a/core/sqf/tools/check_hbase_available/CheckHBase.java b/core/sqf/tools/check_hbase_available/CheckHBase.java
index 181bc9d..9e1ae07 100644
--- a/core/sqf/tools/check_hbase_available/CheckHBase.java
+++ b/core/sqf/tools/check_hbase_available/CheckHBase.java
@@ -37,7 +37,8 @@
 
     static void setupLog4j() {
        System.out.println("In setupLog4J");
-        String confFile = System.getenv("PWD")
+       System.setProperty("hostName", System.getenv("HOSTNAME"));
+       String confFile = System.getenv("PWD")
             + "/log4j.util.config";
         PropertyConfigurator.configure(confFile);
     }
diff --git a/core/sqf/tools/check_hbase_available/HBPerf.java b/core/sqf/tools/check_hbase_available/HBPerf.java
index 346ae82..12ab42b 100644
--- a/core/sqf/tools/check_hbase_available/HBPerf.java
+++ b/core/sqf/tools/check_hbase_available/HBPerf.java
@@ -68,9 +68,10 @@
 
     static void setupLog4j() {
        System.out.println("In setupLog4J");
-        String confFile = System.getenv("PWD")
+       System.setProperty("hostName", System.getenv("HOSTNAME"));
+       String confFile = System.getenv("PWD")
             + "/log4j.util.config";
-        PropertyConfigurator.configure(confFile);
+       PropertyConfigurator.configure(confFile);
     }
 
     // Initialize and set up tables 
diff --git a/core/sqf/tools/check_hbase_available/HBPerfWrite.java b/core/sqf/tools/check_hbase_available/HBPerfWrite.java
index 41aab71..98bde83 100644
--- a/core/sqf/tools/check_hbase_available/HBPerfWrite.java
+++ b/core/sqf/tools/check_hbase_available/HBPerfWrite.java
@@ -67,7 +67,8 @@
 
 
     static void setupLog4j() {
-       System.out.println("In setupLog4J");
+        System.out.println("In setupLog4J");
+        System.setProperty("hostName", System.getenv("HOSTNAME"));      
         String confFile = System.getenv("PWD")
             + "/log4j.util.config";
         PropertyConfigurator.configure(confFile);
diff --git a/core/sqf/tools/check_hbase_available/HBPerf_agg_count.java b/core/sqf/tools/check_hbase_available/HBPerf_agg_count.java
index 1a71bb7..35e1144 100644
--- a/core/sqf/tools/check_hbase_available/HBPerf_agg_count.java
+++ b/core/sqf/tools/check_hbase_available/HBPerf_agg_count.java
@@ -39,7 +39,8 @@
 public class HBPerf_agg_count{
 
     static void setupLog4j() {
-       System.out.println("In setupLog4J");
+        System.out.println("In setupLog4J");
+        System.setProperty("hostName", System.getenv("HOSTNAME"));
         String confFile = System.getenv("PWD")
             + "/log4j.util.config";
         PropertyConfigurator.configure(confFile);
diff --git a/core/sqf/tools/check_hbase_available/HBPerf_counter.java b/core/sqf/tools/check_hbase_available/HBPerf_counter.java
index 0e6c535..2e01367 100644
--- a/core/sqf/tools/check_hbase_available/HBPerf_counter.java
+++ b/core/sqf/tools/check_hbase_available/HBPerf_counter.java
@@ -42,7 +42,8 @@
 public class HBPerf_counter{
 
     static void setupLog4j() {
-       System.out.println("In setupLog4J");
+        System.out.println("In setupLog4J");
+        System.setProperty("hostName", System.getenv("HOSTNAME"));  
         String confFile = System.getenv("PWD")
             + "/log4j.util.config";
         PropertyConfigurator.configure(confFile);
diff --git a/core/sqf/tools/check_hbase_available/HBTransPerf.java b/core/sqf/tools/check_hbase_available/HBTransPerf.java
index 1f123ac..e368ed0 100755
--- a/core/sqf/tools/check_hbase_available/HBTransPerf.java
+++ b/core/sqf/tools/check_hbase_available/HBTransPerf.java
@@ -74,7 +74,8 @@
     private static TransactionManager transactionManager;
 
     static void setupLog4j() {
-       System.out.println("In setupLog4J");
+        System.out.println("In setupLog4J");
+        System.setProperty("hostName", System.getenv("HOSTNAME"));
         String confFile = System.getenv("PWD")
             + "/log4j.util.config";
         PropertyConfigurator.configure(confFile);
diff --git a/core/sql/qmscommon/QRLogger.cpp b/core/sql/qmscommon/QRLogger.cpp
index 3d20222..f71a607 100644
--- a/core/sql/qmscommon/QRLogger.cpp
+++ b/core/sql/qmscommon/QRLogger.cpp
@@ -177,37 +177,7 @@
   if (gv_QRLoggerInitialized_)
      return TRUE;
  
-  // get the log directory
-  logFileName = "";
-
-  // gets the top ancestor process name that will be used to name the file appender log
-  char logFileSuffix [100]="";
-  static bool singleSqlLogFile = (getenv("TRAF_MULTIPLE_SQL_LOG_FILE") == NULL);
-  switch (module_)
-  {
-    case QRL_NONE:
-    case QRL_MXCMP:
-    case QRL_ESP:
-    case QRL_MXEXE:
-    case QRL_UDR:
-      if (singleSqlLogFile) 
-         getMyNidSuffix(logFileSuffix);
-      else 
-         getMyTopAncestor(logFileSuffix);
-      break;
-    case QRL_LOB:
-      getMyNidSuffix(logFileSuffix);
-      break; 
-    case QRL_SSMP:
-    case QRL_SSCP:
-      getMyNidSuffix(logFileSuffix);
-      break;
-    default:
-      break;
-  }
-
-  
-  if (CommonLogger::initLog4cxx(configFileName, logFileSuffix))
+  if (CommonLogger::initLog4cxx(configFileName))
   {
     introduceSelf();
     gv_QRLoggerInitialized_ = TRUE;
diff --git a/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java b/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
index ddd7a7b..1a5bc57 100644
--- a/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
+++ b/core/sql/src/main/java/org/trafodion/sql/HBaseClient.java
@@ -173,6 +173,11 @@
     }
 
     static {
+        System.setProperty("hostName", System.getenv("HOSTNAME"));
+        String trafLog = System.getProperty("TRAF_LOG"); 
+        if (trafLog == null) {  
+            System.setProperty("TRAF_LOG", System.getenv("TRAF_LOG"));  
+        } 
     	String confFile = System.getProperty("trafodion.log4j.configFile");
         System.setProperty("trafodion.root", System.getenv("TRAF_HOME"));
     	if (confFile == null) {
diff --git a/core/sql/src/main/java/org/trafodion/sql/HDFSClient.java b/core/sql/src/main/java/org/trafodion/sql/HDFSClient.java
index 28d9187..d39380a 100644
--- a/core/sql/src/main/java/org/trafodion/sql/HDFSClient.java
+++ b/core/sql/src/main/java/org/trafodion/sql/HDFSClient.java
@@ -127,6 +127,7 @@
    private SequenceFile.CompressionType seqCompressionType_;
 
    static {
+      System.setProperty("hostName", System.getenv("HOSTNAME"));
       String confFile = System.getProperty("trafodion.log4j.configFile");
       System.setProperty("trafodion.root", System.getenv("TRAF_HOME"));
       if (confFile == null) {
diff --git a/core/sql/src/main/java/org/trafodion/sql/HiveClient.java b/core/sql/src/main/java/org/trafodion/sql/HiveClient.java
index 9e97806..a274b88 100644
--- a/core/sql/src/main/java/org/trafodion/sql/HiveClient.java
+++ b/core/sql/src/main/java/org/trafodion/sql/HiveClient.java
@@ -100,10 +100,11 @@
     private static Statement stmt = null;
 
     static {
+         System.setProperty("hostName", System.getenv("HOSTNAME"));
          String confFile = System.getProperty("trafodion.log4j.configFile");
          System.setProperty("trafodion.root", System.getenv("TRAF_HOME"));
          if (confFile == null) 
-         confFile = System.getenv("TRAF_CONF") + "/log4j.sql.config";
+            confFile = System.getenv("TRAF_CONF") + "/log4j.sql.config";
          PropertyConfigurator.configure(confFile);
          hiveConf = new HiveConf();
          hiveMetaClient = new ThreadLocal<HiveMetaStoreClient>();
diff --git a/core/sql/src/main/java/org/trafodion/sql/OrcFileReader.java b/core/sql/src/main/java/org/trafodion/sql/OrcFileReader.java
index b3913de..b255c66 100644
--- a/core/sql/src/main/java/org/trafodion/sql/OrcFileReader.java
+++ b/core/sql/src/main/java/org/trafodion/sql/OrcFileReader.java
@@ -50,6 +50,7 @@
 	   (in case of an ESP, e.g.) when the class:org.trafodion.sql.HBaseClient (which initializes log4j 
            for the org.trafodion.sql package) hasn't been loaded.
 	*/
+        System.setProperty("hostName", System.getenv("HOSTNAME"));
     	String confFile = System.getProperty("trafodion.log4j.configFile");
     	if (confFile == null) {
     		System.setProperty("trafodion.sql.log", System.getenv("TRAF_LOG") + "/trafodion.sql.java.log");
diff --git a/core/sql/src/main/java/org/trafodion/sql/SequenceFileReader.java b/core/sql/src/main/java/org/trafodion/sql/SequenceFileReader.java
index 88995cc..cbe26fc 100644
--- a/core/sql/src/main/java/org/trafodion/sql/SequenceFileReader.java
+++ b/core/sql/src/main/java/org/trafodion/sql/SequenceFileReader.java
@@ -55,9 +55,10 @@
   boolean isEOF = false;
   String lastError = null;  
   static { 
+    System.setProperty("hostName", System.getenv("HOSTNAME"));
     String confFile = System.getProperty("trafodion.log4j.configFile");
     if (confFile == null) {
-   	System.setProperty("trafodion.sql.log", System.getenv("TRAF_LOG") + "/trafodion.sql.java.log");
+        System.setProperty("trafodion.sql.log", System.getenv("TRAF_LOG") + "/trafodion.sql.java.${hostName}.log");
     	confFile = System.getenv("TRAF_CONF") + "/log4j.sql.config";
     }
     PropertyConfigurator.configure(confFile);
diff --git a/core/sql/src/main/java/org/trafodion/sql/SequenceFileWriter.java b/core/sql/src/main/java/org/trafodion/sql/SequenceFileWriter.java
index ff88dd7..5a493d1 100644
--- a/core/sql/src/main/java/org/trafodion/sql/SequenceFileWriter.java
+++ b/core/sql/src/main/java/org/trafodion/sql/SequenceFileWriter.java
@@ -85,6 +85,7 @@
      */
     static {
        conf = TrafConfiguration.create(TrafConfiguration.HDFS_CONF);
+       System.setProperty("hostName", System.getenv("HOSTNAME"));
     }
     SequenceFileWriter() throws IOException
     {
diff --git a/core/sql/src/main/java/org/trafodion/sql/TrafRegionStats.java b/core/sql/src/main/java/org/trafodion/sql/TrafRegionStats.java
index db64663..dbcbe9a 100644
--- a/core/sql/src/main/java/org/trafodion/sql/TrafRegionStats.java
+++ b/core/sql/src/main/java/org/trafodion/sql/TrafRegionStats.java
@@ -82,6 +82,7 @@
     private SizeInfo currRegionSizeInfo = null;
 
     static {
+        System.setProperty("hostName", System.getenv("HOSTNAME"));
     	String confFile = System.getProperty("trafodion.log4j.configFile");
         System.setProperty("trafodion.root", System.getenv("TRAF_HOME"));
     	if (confFile == null) 
