diff --git a/CMakeLists.txt b/CMakeLists.txt index f88778880..6805c7eef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,7 @@ SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib) SET (ENGINE_SYSCONFDIR "/etc") SET (ENGINE_DATADIR "/var/lib/columnstore") +SET (ENGINE_LOGDIR "/var/log/mariadb/columnstore") IF (INSTALL_LAYOUT) # We are building from MariaDB server submodule if this is set diff --git a/dbcon/joblist/largehashjoin.cpp b/dbcon/joblist/largehashjoin.cpp index 9627a50db..66182aaa3 100644 --- a/dbcon/joblist/largehashjoin.cpp +++ b/dbcon/joblist/largehashjoin.cpp @@ -36,6 +36,8 @@ using namespace execplan; #include "elementtype.h" using namespace joblist; +#include "mcsconfig.h" + boost::mutex fileLock_g; namespace @@ -43,7 +45,10 @@ namespace void logDiskIoInfo(uint64_t stepId, const AnyDataListSPtr& spdl) { boost::mutex::scoped_lock lk(fileLock_g); - ofstream umDiskIoFile("/var/log/mariadb/columnstore/trace/umdiskio.log", ios_base::app); + string umDiskioLog = string(MCSLOGDIR) + "/trace/umdiskio.log"; + string umDiskioBak = string(MCSLOGDIR) + "/trace/umdiskio.bak"; + + ofstream umDiskIoFile(umDiskioLog.c_str(), ios_base::app); CalpontSystemCatalog::OID oid; uint64_t maxBuckets = 0; @@ -107,7 +112,8 @@ void logDiskIoInfo(uint64_t stepId, const AnyDataListSPtr& spdl) // move the current file to bak when size above .5 G, so total log is 1 G if (curPos > 0x20000000) { - (void)system("/bin/mv /var/log/mariadb/columnstore/trace/umdiskio.log /var/log/mariadb/columnstore/trace/umdiskio.bak"); + string cmd = "/bin/mv " + umDiskioLog + " " + umDiskioBak; + (void)system(cmd.c_str()); } } diff --git a/debian/mariadb-plugin-columnstore.install b/debian/mariadb-plugin-columnstore.install index d028ed3e8..698143ad6 100644 --- a/debian/mariadb-plugin-columnstore.install +++ b/debian/mariadb-plugin-columnstore.install @@ -11,7 +11,6 @@ usr/bin/StorageManager usr/bin/WriteEngineServer usr/bin/clearShm usr/bin/cleartablelock -usr/bin/columnstore usr/bin/columnstore-post-install usr/bin/columnstore-pre-uninstall usr/bin/columnstoreDBWrite diff --git a/mcsconfig.h.in b/mcsconfig.h.in index 46cf5b153..e80223f0e 100644 --- a/mcsconfig.h.in +++ b/mcsconfig.h.in @@ -389,6 +389,8 @@ #define MCSBINDIR "${ENGINE_BINDIR}" +#define MCSLOGDIR "${ENGINE_LOGDIR}" + #define MCSMYCNFDIR "${MARIADB_MYCNFDIR}" #endif diff --git a/oam/etc/Columnstore.xml b/oam/etc/Columnstore.xml index e347768fe..582dec5d8 100644 --- a/oam/etc/Columnstore.xml +++ b/oam/etc/Columnstore.xml @@ -249,10 +249,6 @@ 90 80 70 - 10 0.0.0.0 128M @@ -363,7 +359,7 @@ 3000 - /var/lib/columnstore/data/bulk + /var/log/mariadb/columnstore/data/bulk /var/lib/columnstore/data1/systemFiles/bulkRollback 98 1 diff --git a/oam/install_scripts/CMakeLists.txt b/oam/install_scripts/CMakeLists.txt index 31764fc4b..b010b033e 100644 --- a/oam/install_scripts/CMakeLists.txt +++ b/oam/install_scripts/CMakeLists.txt @@ -3,7 +3,6 @@ SET (DEFAULT_GROUP "mysql") configure_file("${CMAKE_CURRENT_SOURCE_DIR}/columnstoreSyslogSetup.sh.in" "${CMAKE_CURRENT_SOURCE_DIR}/columnstoreSyslogSetup.sh" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/columnstore-post-install.in" "${CMAKE_CURRENT_SOURCE_DIR}/columnstore-post-install" @ONLY) -configure_file("${CMAKE_CURRENT_SOURCE_DIR}/columnstore.in" "${CMAKE_CURRENT_SOURCE_DIR}/columnstore" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/columnstore-pre-uninstall.in" "${CMAKE_CURRENT_SOURCE_DIR}/columnstore-pre-uninstall" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/columnstoreLogRotate.in" "${CMAKE_CURRENT_SOURCE_DIR}/columnstoreLogRotate" @ONLY) configure_file("${CMAKE_CURRENT_SOURCE_DIR}/mariadb-columnstore.service.in" "${CMAKE_CURRENT_SOURCE_DIR}/mariadb-columnstore.service" @ONLY) @@ -27,7 +26,6 @@ install(PROGRAMS columnstore-post-install columnstore_run.sh post-mysql-install post-mysqld-install - columnstore columnstoreSyslogSetup.sh mcs-stop-controllernode.sh mcs-loadbrm.py diff --git a/oam/install_scripts/columnstore-post-install.in b/oam/install_scripts/columnstore-post-install.in index c47a6a0a9..497525433 100755 --- a/oam/install_scripts/columnstore-post-install.in +++ b/oam/install_scripts/columnstore-post-install.in @@ -32,22 +32,22 @@ fi checkForError() { # check for password error - grep "ERROR 1045" ${tmpDir}/mysql_install.log > ${tmpDir}/error.check - if [ `cat ${tmpDir}/error.check | wc -c` -ne 0 ]; then + grep "ERROR 1045" ${installLogDir}/mysql_install.log > ${installLogDir}/error.check + if [ `cat ${installLogDir}/error.check | wc -c` -ne 0 ]; then echo "There were authentication issues running install_mcs_mysql.sh \ -script. The log is available in ${tmpDir}/mysql_install.log. Please re-run \ +script. The log is available in ${installLogDir}/mysql_install.log. Please re-run \ columnstore-post-install manually after solving the authentication issues." - rm -f ${tmpDir}/error.check + rm -f ${installLogDir}/error.check return 2; fi - rm -f ${tmpDir}/error.check + rm -f ${installLogDir}/error.check #--------------------------------------------------------------------------- # See if engine columnstore exist #--------------------------------------------------------------------------- echo "checking for engine columnstore..." - $MDB --execute="show engines" 2> ${tmpDir}/post-mysql-install.log | grep -i columnstore >> ${tmpDir}/post-mysql-install.log 2>&1 + $MDB --execute="show engines" 2> ${installLogDir}/post-mysql-install.log | grep -i columnstore >> ${installLogDir}/post-mysql-install.log 2>&1 # # Add compressiontype column to SYSCOLUMN if applicable @@ -103,35 +103,50 @@ profileFile="/etc/profile.d/columnstoreAlias.sh" /bin/cp -f @ENGINE_SUPPORTDIR@/columnstoreAlias /etc/profile.d/columnstoreAlias.sh chmod 644 /etc/profile.d/columnstoreAlias.sh >/dev/null 2>&1 -test -d /var/log/mariadb/columnstore || mkdir -p /var/log/mariadb/columnstore >/dev/null 2>&1 -test -d /var/log/mariadb/columnstore/archive || mkdir /var/log/mariadb/columnstore/archive >/dev/null 2>&1 -test -d /var/log/mariadb/columnstore/corefiles || mkdir /var/log/mariadb/columnstore/corefiles >/dev/null 2>&1 -test -d /var/log/mariadb/columnstore/trace || mkdir /var/log/mariadb/columnstore/trace >/dev/null 2>&1 -test -h /var/log/mariadb/columnstore/data && rm -f /var/log/mariadb/columnstore/data -chmod 755 /var/log/mariadb/columnstore/corefiles > /dev/null 2>&1 +test -d @ENGINE_LOGDIR@ || mkdir -p @ENGINE_LOGDIR@ >/dev/null 2>&1 +test -d @ENGINE_LOGDIR@/archive || mkdir @ENGINE_LOGDIR@/archive >/dev/null 2>&1 +test -d @ENGINE_LOGDIR@/corefiles || mkdir @ENGINE_LOGDIR@/corefiles >/dev/null 2>&1 +test -d @ENGINE_LOGDIR@/trace || mkdir @ENGINE_LOGDIR@/trace >/dev/null 2>&1 +test -d @ENGINE_LOGDIR@/cpimport || mkdir @ENGINE_LOGDIR@/cpimport >/dev/null 2>&1 +test -d @ENGINE_LOGDIR@/install || mkdir @ENGINE_LOGDIR@/install >/dev/null 2>&1 +test -h @ENGINE_LOGDIR@/data && rm -f @ENGINE_LOGDIR@/data +chmod 755 @ENGINE_LOGDIR@/corefiles > /dev/null 2>&1 +chmod 777 @ENGINE_LOGDIR@/cpimport +chmod 777 @ENGINE_LOGDIR@/install +installLogDir=@ENGINE_LOGDIR@/install # make sure trace dir is world-writable and sticky -test -d /var/lib/columnstore/data || mkdir -p /var/lib/columnstore/data -test -d /var/lib/columnstore/data1/systemFiles/dbrm || mkdir -p /var/lib/columnstore/data1/systemFiles/dbrm -test -d /var/lib/columnstore/local || mkdir -p /var/lib/columnstore/local -test -d /var/lib/columnstore/data1/systemFiles/dataTransaction || rmdir /var/lib/columnstore/data1/systemFiles/dataTransaction >/dev/null 2>&1 -test -d /var/lib/columnstore/data1/systemFiles/dataTransaction/archive || rmdir /var/lib/columnstore/data1/systemFiles/dataTransaction/archive >/dev/null 2>&1 -chmod 1755 /var/lib/columnstore/data1 >/dev/null 2>&1 -chmod -R 1755 /var/lib/columnstore/data1/systemFiles >/dev/null 2>&1 +test -d @ENGINE_DATADIR@/data || mkdir -p @ENGINE_DATADIR@/data +test -d @ENGINE_DATADIR@/data1/systemFiles/dbrm || mkdir -p @ENGINE_DATADIR@/data1/systemFiles/dbrm +test -d @ENGINE_DATADIR@/local || mkdir -p @ENGINE_DATADIR@/local +test -d @ENGINE_DATADIR@/data1/systemFiles/dataTransaction || rmdir @ENGINE_DATADIR@/data1/systemFiles/dataTransaction >/dev/null 2>&1 +test -d @ENGINE_DATADIR@/data1/systemFiles/dataTransaction/archive || rmdir @ENGINE_DATADIR@/data1/systemFiles/dataTransaction/archive >/dev/null 2>&1 +chmod 1755 @ENGINE_DATADIR@/data1 >/dev/null 2>&1 +chmod -R 1755 @ENGINE_DATADIR@/data1/systemFiles >/dev/null 2>&1 chmod 1755 @ENGINE_SYSCONFDIR@/columnstore > /dev/null 2>&1 #create the bulk-load dirs -mkdir -p /var/lib/columnstore/data/bulk/data/import >/dev/null 2>&1 -mkdir -p /var/lib/columnstore/data/bulk/log >/dev/null 2>&1 -mkdir -p /var/lib/columnstore/data/bulk/job >/dev/null 2>&1 -mkdir -p /var/lib/columnstore/data/bulk/rollback >/dev/null 2>&1 -mkdir -p /var/lib/columnstore/data/bulk/tmpjob >/dev/null 2>&1 -rm -f /var/lib/columnstore/data/bulk/tmpjob/* >/dev/null 2>&1 +mkdir -p @ENGINE_DATADIR@/data/bulk/data/import >/dev/null 2>&1 +mkdir -p @ENGINE_DATADIR@/data/bulk/log >/dev/null 2>&1 +mkdir -p @ENGINE_DATADIR@/data/bulk/job >/dev/null 2>&1 +mkdir -p @ENGINE_DATADIR@/data/bulk/rollback >/dev/null 2>&1 +mkdir -p @ENGINE_DATADIR@/data/bulk/tmpjob >/dev/null 2>&1 +mkdir -p @ENGINE_LOGDIR@/data/bulk/data/import >/dev/null 2>&1 +mkdir -p @ENGINE_LOGDIR@/data/bulk/log >/dev/null 2>&1 +mkdir -p @ENGINE_LOGDIR@/data/bulk/job >/dev/null 2>&1 +mkdir -p @ENGINE_LOGDIR@/data/bulk/rollback >/dev/null 2>&1 +mkdir -p @ENGINE_LOGDIR@/data/bulk/tmpjob >/dev/null 2>&1 +rm -f @ENGINE_DATADIR@/data/bulk/tmpjob/* >/dev/null 2>&1 +rm -f @ENGINE_LOGDIR@/data/bulk/tmpjob/* >/dev/null 2>&1 +chmod -R 777 @ENGINE_LOGDIR@/data #get columnstore temp file directory name -tmpDir=/tmp/columnstore_tmp_files +tmpDir=`@ENGINE_BINDIR@/mcsGetConfig SystemConfig SystemTempFileDir` +scratchDir=$tmpDir`@ENGINE_BINDIR@/mcsGetConfig SystemConfig hdfsRdwrScratch` mkdir $tmpDir >/dev/null 2>&1 +mkdir $scratchDir >/dev/null 2>&1 chmod 777 $tmpDir +chmod 777 $scratchDir #create mount directories mkdir /mnt/tmp > /dev/null 2>&1 @@ -196,12 +211,12 @@ if [ $user = "root" ]; then fi if [ $user = "root" ]; then - columnstoreSyslogSetup.sh install > $tmpDir/syslog_install.log 2>&1 + columnstoreSyslogSetup.sh install > $installLogDir/syslog_install.log 2>&1 #check if MariaDB Columnstore system logging was setup - cat $tmpDir/syslog_install.log | grep 'No System Logging' >/dev/null 2>&1 + cat $installLogDir/syslog_install.log | grep 'No System Logging' >/dev/null 2>&1 if [ $? -eq 0 ]; then - cat $tmpDir/syslog_install.log + cat $installLogDir/syslog_install.log fi else chown $user:$user @ENGINE_SYSCONFDIR@/columnstore/Columnstore.xml @@ -231,7 +246,7 @@ rm -f $lockdir/columnstore # This was the last place of postConfigure. RIP -@ENGINE_SBINDIR@/install_mcs_mysql.sh --tmpdir=$tmpDir +@ENGINE_SBINDIR@/install_mcs_mysql.sh --tmpdir=$installLogDir # Restart MDB to enable plugin systemctl cat mariadb.service > /dev/null 2>&1 @@ -326,23 +341,22 @@ fi #change ownership/permissions to be able to run columnstore as non-root # TODO: Remove conditional once container dispatcher uses non-root by default if [ $(running_systemd) -eq 0 ]; then - chown -R @DEFAULT_USER@:@DEFAULT_GROUP@ /var/log/mariadb/columnstore + chown -R @DEFAULT_USER@:@DEFAULT_GROUP@ @ENGINE_LOGDIR@ chown -R @DEFAULT_USER@:@DEFAULT_GROUP@ /etc/columnstore - chown -R @DEFAULT_USER@:@DEFAULT_GROUP@ /var/lib/columnstore - chown -R @DEFAULT_USER@:@DEFAULT_GROUP@ /tmp/columnstore_tmp_files - chmod 777 /tmp/columnstore_tmp_files + chown -R @DEFAULT_USER@:@DEFAULT_GROUP@ @ENGINE_DATADIR@ + chown -R @DEFAULT_USER@:@DEFAULT_GROUP@ $tmpDir chmod 777 /dev/shm fi systemctl cat mariadb-columnstore.service > /dev/null 2>&1 if [ $? -eq 0 ] && [ $(running_systemd) -eq 0 ]; then - mkdir -p /var/lib/columnstore/storagemanager - chown -R mysql:mysql /var/lib/columnstore/storagemanager - IFLAG=/var/lib/columnstore/storagemanager/storagemanager-lock + mkdir -p @ENGINE_DATADIR@/storagemanager + chown -R mysql:mysql @ENGINE_DATADIR@/storagemanager + IFLAG=@ENGINE_DATADIR@/storagemanager/storagemanager-lock # shared dbroot1 synchronization # prevents dbbuilder from processing simultaneously on two or more nodes - exec {fd_lock}>/var/lib/columnstore/data1/dbroot1-lock + exec {fd_lock}>@ENGINE_DATADIR@/data1/dbroot1-lock flock -x "$fd_lock" # shared storagemanager data corruption prevention diff --git a/oam/install_scripts/columnstore-pre-uninstall.in b/oam/install_scripts/columnstore-pre-uninstall.in index f3e9e82fa..0d481360e 100755 --- a/oam/install_scripts/columnstore-pre-uninstall.in +++ b/oam/install_scripts/columnstore-pre-uninstall.in @@ -49,8 +49,7 @@ if [ -n "$(pgrep -x ProcMon)" ] || [ -n "$(pgrep -x ProcMgr)" ];then fi rm -f /etc/profile.d/columnstoreAlias.sh -rm -f /var/log/mariadb/columnstore/activeAlarms > /dev/null 2>&1 -rm -f /var/log/mariadb/columnstore/*.log1 > /dev/null 2>&1 +rm -f @ENGINE_LOGDIR@/*.log1 > /dev/null 2>&1 #get temp directory tmpDir=`@ENGINE_BINDIR@/mcsGetConfig SystemConfig SystemTempFileDir` @@ -59,11 +58,11 @@ if [[ $tmpDir = *"tmp" ]]; then rm -rf $tmpDir/* fi -rm -f /var/lib/columnstore/local/*.columnstore -rm -rf /var/lib/columnstore/local/etc/ -rm -f /var/lib/columnstore/data/bulk/tmp/job/* >/dev/null 2>&1 -rm -f /var/lib/columnstore/local/moveDbrootTransactionLog -rm -rf /var/log/mariadb/columnstore/ +rm -f @ENGINE_DATADIR@/local/*.columnstore +rm -rf @ENGINE_DATADIR@/local/etc/ +rm -f @ENGINE_DATADIR@/data/bulk/tmp/job/* >/dev/null 2>&1 +rm -f @ENGINE_DATADIR@/local/moveDbrootTransactionLog +rm -rf @ENGINE_LOGDIR@ rm -rf /tmp/columnstore_tmp_files lockdir=`@ENGINE_BINDIR@/mcsGetConfig Installation LockFileDirectory` @@ -111,7 +110,7 @@ if [ -n "$systemctl" ] && [ $(running_systemd) -eq 0 ]; then systemctl daemon-reload # remove flag to prevent clusters using shared storage from initializing columnstore more than once - IFLAG=/var/lib/columnstore/storagemanager/storagemanager-lock + IFLAG=@ENGINE_DATADIR@/storagemanager/storagemanager-lock if [ -e $IFLAG ]; then rm $IFLAG fi @@ -137,7 +136,7 @@ fi rm -f @ENGINE_SYSCONFDIR@/columnstore/AlarmConfig.xml.installSave #remove OAMdbrootCheck file -rm -f /var/lib/columnstore/data*/OAMdbrootCheck > /dev/null 2>&1 +rm -f @ENGINE_DATADIR@/data*/OAMdbrootCheck > /dev/null 2>&1 rm -f /etc/rsyslog.d/49-columnstore.conf > /dev/null 2>&1 rm -rf /tmp/columnstore_tmp_files > /dev/null 2>&1 diff --git a/oam/install_scripts/columnstore.in b/oam/install_scripts/columnstore.in deleted file mode 100644 index 443a4ede3..000000000 --- a/oam/install_scripts/columnstore.in +++ /dev/null @@ -1,161 +0,0 @@ -#!/bin/bash -# -# $Id: columnstore 3704 2013-08-07 03:33:20Z bwilkinson $ -# -# columnstore Starts MariaDB Columnstore database platform -# -# -# chkconfig: 2345 99 99 -# description: MariaDB Columnstore is a database platform that utilizes Mysql -# -### BEGIN INIT INFO -# Provides: columnstore -# Required-Start: $local_fs $remote_fs $network $syslog $all -# Required-Stop: $local_fs $remote_fs $network $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Start/stop MariaDB Columnstore DW DBMS -### END INIT INFO - -running_systemd() { - if [ "$(ps --no-headers -o comm 1)" = "systemd" ]; then - echo 0 - else - echo 1 - fi -} - -USER=`whoami 2>/dev/null` - -# Source function library. -if [ -f /etc/init.d/functions ]; then - . /etc/init.d/functions -fi - -. @ENGINE_SUPPORTDIR@/columnstore_functions - -mt=`module_type` -mid=`module_id` - -has_um=`@ENGINE_BINDIR@/mcsGetConfig SystemModuleConfig ModuleCount2` -if [ "x$has_um" = x ]; then - has_um=0 -fi - -lockdir=`@ENGINE_BINDIR@/mcsGetConfig Installation LockFileDirectory` - -#get temp directory -tmpDir=`@ENGINE_BINDIR@/mcsGetConfig SystemConfig SystemTempFileDir` -mkdir $tmpDir >/dev/null 2>&1 -if [ $USER == "root" ]; then - chmod 777 $tmpDir -fi - -checkInstallSetup() { - InitialInstallFlag=`@ENGINE_BINDIR@/mcsGetConfig -c @ENGINE_SYSCONFDIR@/columnstore/Columnstore.xml Installation InitialInstallFlag` - if [ $InitialInstallFlag != "y" ]; then - echo "Please run the postConfigure install script, check the Installation Guide" - echo "for additional details" - rm -f $lockdir/columnstore - exit 1 - fi -} - -start() { - if [ -f $lockdir/columnstore ]; then - echo "MariaDB Columnstore Database Platform already running" - exit 0 - fi - - # Make sure ProcMon is down first - touch ${tmpDir}/StopColumnstore - pkill ProcMon - pkill ProcMgr - - (mkdir -p $lockdir && touch $lockdir/columnstore) >/dev/null 2>&1 - - #checkInstallSetup - - CoreFileFlag=`@ENGINE_BINDIR@/mcsGetConfig -c @ENGINE_SYSCONFDIR@/columnstore/Columnstore.xml Installation CoreFileFlag` - if [ $CoreFileFlag = "y" ]; then - #columnstore core files - ulimit -c unlimited > /dev/null 2>&1 - sysctl -q -w kernel.core_uses_pid=1 > /dev/null 2>&1 - sysctl -q -w kernel.core_pattern=/var/log/mariadb/columnstore/corefiles/core.%e.%p > /dev/null 2>&1 - - fi - - RETVAL=0 - moduleName="$(cat /var/lib/columnstore/local/module)" - echo "Starting module $moduleName of MariaDB Columnstore Database Platform" - rm -f ${tmpDir}/StopColumnstore - exec columnstore_run.sh -l ${tmpDir} ProcMon > /dev/null 2>&1 & - - return $RETVAL -} -stop() { - moduleName="$(cat /var/lib/columnstore/local/module)" - echo "Stopping module $moduleName of MariaDB Columnstore Database Platform" - touch ${tmpDir}/StopColumnstore - mcsadmin stopModule $moduleName y - RETVAL=$? - rm -f $lockdir/columnstore - fuser -k 8604/tcp > /dev/null 2>&1 - # Test we are using systemd - systemctl cat mariadb.service > /dev/null 2>&1 - if [ $? -eq 0 ] && [ $(running_systemd) -eq 0 ]; then - systemctl stop mariadb.service > /dev/null 2>&1 - else - pkill mysqld - fi - pkill ProcMon - pkill ProcMgr - return $RETVAL -} -restart() { - stop - start -} -status() { - isrunning=0 - if [ $EUID -eq 0 ]; then - if [ -f $lockdir/columnstore ]; then - isrunning=1 - fi - else - pgrep ProcMon >/dev/null 2>&1 - if [ $? -eq 0 ]; then - isrunning=1 - fi - fi - if [ $isrunning -ne 0 ]; then - echo "MariaDB Columnstore is running" - else - echo "MariaDB Columnstore is not running" - exit 3 - fi -} - -case "$1" in -start) - start - ;; -stop) - stop - ;; -restart) - restart - ;; -condrestart) - [ -f $lockdir/columnstore ] && restart || : - ;; -status) - status - ;; -*) - echo $"Usage: $0 {start|stop|restart|condrestart|status}" - exit 1 -esac - -exit $? - diff --git a/oam/install_scripts/columnstoreLogRotate.in b/oam/install_scripts/columnstoreLogRotate.in index 212349c34..35e806ca7 100644 --- a/oam/install_scripts/columnstoreLogRotate.in +++ b/oam/install_scripts/columnstoreLogRotate.in @@ -3,13 +3,13 @@ # as part of the package installation # -/var/log/mariadb/columnstore/*.log { +@ENGINE_LOGDIR@/*.log { missingok rotate 7 daily dateext copytruncate - olddir /var/log/mariadb/columnstore/archive + olddir @ENGINE_LOGDIR@/archive su root root } @ENGINE_SYSCONFDIR@/columnstore/Columnstore.xml { diff --git a/oam/install_scripts/columnstoreSyslog.in b/oam/install_scripts/columnstoreSyslog.in index a4a908a2f..a6691cc65 100644 --- a/oam/install_scripts/columnstoreSyslog.in +++ b/oam/install_scripts/columnstoreSyslog.in @@ -1,8 +1,8 @@ # MariaDB Columnstore Database Platform Logging $FileOwner @DEFAULT_USER@ $FileGroup @DEFAULT_GROUP@ -local1.=crit -/var/log/mariadb/columnstore/crit.log -local1.=err -/var/log/mariadb/columnstore/err.log -local1.=warning -/var/log/mariadb/columnstore/warning.log -local1.=info -/var/log/mariadb/columnstore/info.log -local1.=debug -/var/log/mariadb/columnstore/debug.log +local1.=crit -@ENGINE_LOGDIR@/crit.log +local1.=err -@ENGINE_LOGDIR@/err.log +local1.=warning -@ENGINE_LOGDIR@/warning.log +local1.=info -@ENGINE_LOGDIR@/info.log +local1.=debug -@ENGINE_LOGDIR@/debug.log diff --git a/oam/install_scripts/columnstoreSyslogSetup.sh.in b/oam/install_scripts/columnstoreSyslogSetup.sh.in index 3dc35e71b..8fada3c29 100755 --- a/oam/install_scripts/columnstoreSyslogSetup.sh.in +++ b/oam/install_scripts/columnstoreSyslogSetup.sh.in @@ -50,7 +50,7 @@ columnstoreSyslogFile=@ENGINE_SUPPORTDIR@/columnstoreSyslog columnstoreSyslogFile7=@ENGINE_SUPPORTDIR@/columnstoreSyslog7 #get temp directory -tmpDir=`@ENGINE_BINDIR@/mcsGetConfig SystemConfig SystemTempFileDir` +tmpDir=@ENGINE_LOGDIR@/install checkSyslog() { #check which syslog daemon is being used @@ -159,16 +159,16 @@ fi } makeDir() { - if [ ! -d /var/log/mariadb/columnstore ]; then - mkdir -p /var/log/mariadb/columnstore >/dev/null 2>&1 - test -d /var/log/mariadb/columnstore/archive || mkdir /var/log/mariadb/columnstore/archive >/dev/null 2>&1 - test -d /var/log/mariadb/columnstore/corefiles || mkdir /var/log/mariadb/columnstore/corefiles >/dev/null 2>&1 - test -d /var/log/mariadb/columnstore/trace || mkdir /var/log/mariadb/columnstore/trace >/dev/null 2>&1 + if [ ! -d @ENGINE_LOGDIR@ ]; then + mkdir -p @ENGINE_LOGDIR@ >/dev/null 2>&1 + test -d @ENGINE_LOGDIR@/archive || mkdir @ENGINE_LOGDIR@/archive >/dev/null 2>&1 + test -d @ENGINE_LOGDIR@/corefiles || mkdir @ENGINE_LOGDIR@/corefiles >/dev/null 2>&1 + test -d @ENGINE_LOGDIR@/trace || mkdir @ENGINE_LOGDIR@/trace >/dev/null 2>&1 chown $username:$groupname -R /var/log/mariadb else - test -d /var/log/mariadb/columnstore/archive || mkdir /var/log/mariadb/columnstore/archive >/dev/null 2>&1 - test -d /var/log/mariadb/columnstore/corefiles || mkdir /var/log/mariadb/columnstore/corefiles >/dev/null 2>&1 - test -d /var/log/mariadb/columnstore/trace || mkdir /var/log/mariadb/columnstore/trace >/dev/null 2>&1 + test -d @ENGINE_LOGDIR@/archive || mkdir @ENGINE_LOGDIR@/archive >/dev/null 2>&1 + test -d @ENGINE_LOGDIR@/corefiles || mkdir @ENGINE_LOGDIR@/corefiles >/dev/null 2>&1 + test -d @ENGINE_LOGDIR@/trace || mkdir @ENGINE_LOGDIR@/trace >/dev/null 2>&1 fi } @@ -220,19 +220,18 @@ if [ ! -z "$syslog_conf" ] ; then fi #log install message and find the least permission that allows logging to work - CHMOD_LIST=("750" "770" "775" "777") + CHMOD_LIST=("755" "775" "777") for CHMOD in "${CHMOD_LIST[@]}"; do chmod $CHMOD /var/log/mariadb - chmod $CHMOD /var/log/mariadb/columnstore - chmod $CHMOD /var/log/mariadb/columnstore/archive - chmod $CHMOD /var/log/mariadb/columnstore/corefiles - chmod $CHMOD /var/log/mariadb/columnstore/trace + chmod $CHMOD @ENGINE_LOGDIR@ + chmod $CHMOD @ENGINE_LOGDIR@/archive + chmod $CHMOD @ENGINE_LOGDIR@/corefiles + chmod $CHMOD @ENGINE_LOGDIR@/trace - . columnstore_functions - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$installdir/lib cplogger -i 19 "***** MariaDB Columnstore Installed *****" + cplogger -i 19 "***** MariaDB Columnstore Installed *****" - if [ -f /var/log/mariadb/columnstore/info.log ]; then - if [ -s /var/log/mariadb/columnstore/info.log ]; then + if [ -f @ENGINE_LOGDIR@/info.log ]; then + if [ -s @ENGINE_LOGDIR@/info.log ]; then exit 0 fi fi @@ -290,7 +289,7 @@ check() { number=$RANDOM cplogger -i 104 "MariaDB Columnstore Log Test: $number" sleep 3 -egrep -qs "MariaDB Columnstore Log Test: $number" /var/log/mariadb/columnstore/info.log +egrep -qs "MariaDB Columnstore Log Test: $number" @ENGINE_LOGDIR@/info.log if [ $? -eq 0 ]; then echo "MariaDB Columnstore System Logging working" exit 0 diff --git a/oam/install_scripts/mariadb-columnstore-start.sh.in b/oam/install_scripts/mariadb-columnstore-start.sh.in index 2adf25434..351512d62 100644 --- a/oam/install_scripts/mariadb-columnstore-start.sh.in +++ b/oam/install_scripts/mariadb-columnstore-start.sh.in @@ -4,7 +4,7 @@ # prevent nodes using shared storage manager from stepping on each other when initializing # flock will open up an exclusive file lock to run atomic operations -exec {fd_lock}>/var/lib/columnstore/storagemanager/storagemanager-lock +exec {fd_lock}>@ENGINE_DATADIR@/storagemanager/storagemanager-lock flock -n "$fd_lock" || exit 0 # pass in arg of 1 to start DBRM_Worker1 @@ -15,7 +15,7 @@ flock -n "$fd_lock" || exit 0 /bin/systemctl start mcs-exemgr /bin/systemctl start mcs-dmlproc /bin/systemctl start mcs-ddlproc -su -s /bin/sh -c '@ENGINE_BINDIR@/dbbuilder 7' @DEFAULT_USER@ 1> /tmp/columnstore_tmp_files/dbbuilder.log +su -s /bin/sh -c '@ENGINE_BINDIR@/dbbuilder 7' @DEFAULT_USER@ 1> @ENGINE_LOGDIR@/install/dbbuilder.log flock -u "$fd_lock" diff --git a/oam/replaytxnlog/replaytxnlog.cpp b/oam/replaytxnlog/replaytxnlog.cpp index 78f4617d7..8bb2d1425 100644 --- a/oam/replaytxnlog/replaytxnlog.cpp +++ b/oam/replaytxnlog/replaytxnlog.cpp @@ -41,6 +41,7 @@ namespace fs = boost::filesystem; #include "liboamcpp.h" #include "messagelog.h" #include "messageids.h" +#include "mcsconfig.h" // Testing definitions. These should never be commented out in checked in code. #define OAM_AVAILABLE // Comment out to skip the OAM calls to get log file locations and turn on/off logging. @@ -386,7 +387,7 @@ list ReplayTxnLog::getLogFileNames() oam.getLogFile("pm1", "data", fullLogFileName); #else */ - fullLogFileName = "/var/log/mariadb/columnstore/data/data_mods.log"; + fullLogFileName = string(MCSLOGDIR) + "/data/data_mods.log"; /* #endif */ diff --git a/oamapps/columnstoreDB/columnstoreDB.cpp b/oamapps/columnstoreDB/columnstoreDB.cpp index 03a843385..d50d77429 100644 --- a/oamapps/columnstoreDB/columnstoreDB.cpp +++ b/oamapps/columnstoreDB/columnstoreDB.cpp @@ -41,6 +41,7 @@ #include "liboamcpp.h" #include "configcpp.h" #include "installdir.h" +#include "mcsconfig.h" using namespace std; using namespace oam; @@ -319,7 +320,7 @@ int main(int argc, char** argv) { dbrm.setSystemSuspended(true); sleep(5); - string cmd = "save_brm > /var/log/mariadb/columnstore/save_brm.log1 2>&1"; + string cmd = "save_brm > " + string(MCSLOGDIR) + "/save_brm.log1 2>&1"; int rtnCode = system(cmd.c_str()); if (rtnCode == 0) diff --git a/primitives/blockcache/blockrequestprocessor.cpp b/primitives/blockcache/blockrequestprocessor.cpp index d43c889f8..0f399d3b5 100644 --- a/primitives/blockcache/blockrequestprocessor.cpp +++ b/primitives/blockcache/blockrequestprocessor.cpp @@ -34,6 +34,7 @@ using namespace std; #include "rwlock_local.h" #include "dbrm.h" #include "pp_logger.h" +#include "mcsconfig.h" namespace dbbc { @@ -69,7 +70,7 @@ BlockRequestProcessor::BlockRequestProcessor(uint32_t numBlcks, #ifdef _MSC_VER brpLogFileName << "C:/Calpont/log/trace/brp." << tid; #else - brpLogFileName << "/var/log/mariadb/columnstore/trace/brp." << tid; + brpLogFileName << MCSLOGDIR << "/trace/brp." << tid; #endif fLogFile.open(brpLogFileName.str().c_str(), ios_base::app | ios_base::ate); } diff --git a/primitives/blockcache/filebuffermgr.cpp b/primitives/blockcache/filebuffermgr.cpp index 6deccf8fc..2dd1be204 100644 --- a/primitives/blockcache/filebuffermgr.cpp +++ b/primitives/blockcache/filebuffermgr.cpp @@ -41,6 +41,7 @@ #include "stats.h" #include "configcpp.h" #include "filebuffermgr.h" +#include "mcsconfig.h" using namespace config; using namespace boost; @@ -73,7 +74,7 @@ FileBufferMgr::FileBufferMgr(const uint32_t numBlcks, const uint32_t blkSz, cons #ifdef _MSC_VER fLog.open("C:/Calpont/log/trace/bc", ios_base::app | ios_base::ate); #else - fLog.open("/var/log/mariadb/columnstore/trace/bc", ios_base::app | ios_base::ate); + fLog.open(string(MCSLOGDIR) + "/trace/bc", ios_base::app | ios_base::ate); #endif } diff --git a/primitives/blockcache/iomanager.cpp b/primitives/blockcache/iomanager.cpp index af65d6918..70b40f63f 100644 --- a/primitives/blockcache/iomanager.cpp +++ b/primitives/blockcache/iomanager.cpp @@ -103,6 +103,8 @@ using namespace compress; #include "IDBLogger.h" using namespace idbdatafile; +#include "mcsconfig.h" + typedef tr1::unordered_set USOID; namespace primitiveprocessor @@ -454,7 +456,7 @@ void* thr_popper(ioManager* arg) iomLogFileName << "C:/Calpont/log/trace/iom." << threadId; #else threadId = pthread_self(); - iomLogFileName << "/var/log/mariadb/columnstore/trace/iom." << threadId; + iomLogFileName << MCSLOGDIR << "/trace/iom." << threadId; #endif lFile.open(iomLogFileName.str().c_str(), ios_base::app | ios_base::ate); } @@ -1351,7 +1353,7 @@ ioManager::ioManager(FileBufferMgr& fbm, #ifdef _MSC_VER FDTraceFile().open("C:/Calpont/log/trace/fdcache", ios_base::ate | ios_base::app); #else - FDTraceFile().open("/var/log/mariadb/columnstore/trace/fdcache", ios_base::ate | ios_base::app); + FDTraceFile().open(string(MCSLOGDIR) + "/trace/fdcache", ios_base::ate | ios_base::app); #endif } diff --git a/primitives/blockcache/stats.cpp b/primitives/blockcache/stats.cpp index f0ada3532..b451c51de 100644 --- a/primitives/blockcache/stats.cpp +++ b/primitives/blockcache/stats.cpp @@ -42,6 +42,7 @@ using namespace boost; #include "stats.h" #include "messagelog.h" #include "exceptclasses.h" +#include "mcsconfig.h" using namespace BRM; @@ -110,7 +111,7 @@ public: #ifdef _MSC_VER oss << "C:/Calpont/log/trace/" << outName << '.' << sessionID; #else - oss << "/var/log/mariadb/columnstore/trace/" << outName << '.' << sessionID; + oss << MCSLOGDIR << "/trace/" << outName << '.' << sessionID; #endif oFile.reset(new ofstream()); oFile->open(oss.str().c_str(), ios_base::out | ios_base::ate | ios_base::app); diff --git a/primitives/primproc/bppseeder.cpp b/primitives/primproc/bppseeder.cpp index 62ee37c00..41744dbba 100644 --- a/primitives/primproc/bppseeder.cpp +++ b/primitives/primproc/bppseeder.cpp @@ -45,6 +45,7 @@ typedef int pthread_t; #include "errorcodes.h" #include "calpontsystemcatalog.h" #include "blockcacheclient.h" +#include "mcsconfig.h" using namespace messageqcpp; using namespace std; @@ -256,7 +257,7 @@ int BPPSeeder::operator()() #ifdef _MSC_VER LogFileName << "C:/Calpont/log/trace/pt." << tid; #else - LogFileName << "/var/log/mariadb/columnstore/trace/pt." << tid; + LogFileName << MCSLOGDIR << "/trace/pt." << tid; #endif spof.reset(new PTLogs_t(gThdCnt, LogFileName.str().c_str())); gThdCnt++; diff --git a/primitives/primproc/primproc.cpp b/primitives/primproc/primproc.cpp index 94cfa60f6..bd9f1c344 100644 --- a/primitives/primproc/primproc.cpp +++ b/primitives/primproc/primproc.cpp @@ -331,16 +331,12 @@ void* waitForSIGUSR1(void* p) if (rec_sig == SIGUSR1) { -#ifdef _MSC_VER - ofstream out("C:/Calpont/log/trace/pplru.dat"); -#else - ofstream out("/var/log/mariadb/columnstore/trace/pplru.dat"); -#endif + ostringstream out; for (int i = 0; i < cacheCount; i++) { BRPp[i]->formatLRUList(out); - out << "###" << endl; + cout << out.str() << "###" << endl; } } else if (rec_sig == SIGUSR2) diff --git a/utils/common/crashtrace.cpp b/utils/common/crashtrace.cpp index afa593d38..5e8bd3c2f 100644 --- a/utils/common/crashtrace.cpp +++ b/utils/common/crashtrace.cpp @@ -23,12 +23,13 @@ #include #include #include +#include "mcsconfig.h" void fatalHandler(int sig) { char filename[128]; void* addrs[128]; - snprintf(filename, 128, "/var/log/mariadb/columnstore/trace/%s.%d.log", program_invocation_short_name, getpid()); + snprintf(filename, 128, "%s/trace/%s.%d.log", MCSLOGDIR, program_invocation_short_name, getpid()); FILE* logfile = fopen(filename, "w"); char s[30]; struct tm tim; diff --git a/utils/testbc/stats.cpp b/utils/testbc/stats.cpp index 1dd2442e3..524275eb5 100644 --- a/utils/testbc/stats.cpp +++ b/utils/testbc/stats.cpp @@ -97,7 +97,7 @@ public: outName = name; ostringstream oss; - oss << "/var/log/mariadb/columnstore/trace/" << outName << '.' << sessionID; + oss << MCSLOGDIR << "/trace/" << outName << '.' << sessionID; oFile.reset(new ofstream()); oFile->open(oss.str().c_str(), ios_base::out | ios_base::ate | ios_base::app); } diff --git a/utils/threadpool/threadpool.cpp b/utils/threadpool/threadpool.cpp index 69db10b17..eb86dad42 100644 --- a/utils/threadpool/threadpool.cpp +++ b/utils/threadpool/threadpool.cpp @@ -33,6 +33,7 @@ using namespace logging; #include #include #include "boost/date_time/posix_time/posix_time_types.hpp" +#include "mcsconfig.h" namespace threadpool { @@ -523,7 +524,7 @@ void ThreadPool::dump() void ThreadPoolMonitor::operator()() { ostringstream filename; - filename << "/var/log/mariadb/columnstore/trace/ThreadPool_" << fPool->name() << ".log"; + filename << MCSLOGDIR << "/trace/ThreadPool_" << fPool->name() << ".log"; fLog = new ofstream(filename.str().c_str()); for (;;) diff --git a/versioning/BRM/tracer.cpp b/versioning/BRM/tracer.cpp index 869b82197..22c46fbb7 100644 --- a/versioning/BRM/tracer.cpp +++ b/versioning/BRM/tracer.cpp @@ -36,12 +36,14 @@ #include "tracer.h" #undef TRACER_DLLEXPORT +#include "mcsconfig.h" + using namespace std; namespace BRM { #ifdef BRM_INFO -std::ofstream brmlog("/var/log/mariadb/columnstore/brm.log", std::ios::app); +std::ofstream brmlog(string(MCSLOGDIR) + "/brm.log", std::ios::app); Tracer::Tracer(const std::string& file, int line, const std::string& msg, bool debug, bool writeNow): fFileName(file), fLine(line), fMsg(msg), fDebug(debug), fpid(getpid()) { diff --git a/writeengine/bulk/cpimport.cpp b/writeengine/bulk/cpimport.cpp index e1b8b6695..550529fad 100644 --- a/writeengine/bulk/cpimport.cpp +++ b/writeengine/bulk/cpimport.cpp @@ -52,6 +52,7 @@ #include "IDBPolicy.h" #include "MonitorProcMem.h" #include "dataconvert.h" +#include "mcsconfig.h" using namespace std; using namespace WriteEngine; @@ -1149,7 +1150,8 @@ int main(int argc, char** argv) int rc = NO_ERROR; std::string exceptionMsg; TASK task; // track tasks being performed - + // set this upfront + curJob.setErrorDir(string(MCSLOGDIR) + "/cpimport/"); try { //-------------------------------------------------------------------------- diff --git a/writeengine/bulk/we_bulkload.cpp b/writeengine/bulk/we_bulkload.cpp index 6a4f2ae6e..ef612f380 100644 --- a/writeengine/bulk/we_bulkload.cpp +++ b/writeengine/bulk/we_bulkload.cpp @@ -53,6 +53,7 @@ #include "idbcompress.h" #include "calpontsystemcatalog.h" #include "we_ddlcommandclient.h" +#include "mcsconfig.h" using namespace std; @@ -76,7 +77,6 @@ namespace WriteEngine /* static */ const std::string BulkLoad::DIR_BULK_JOB("job"); /* static */ const std::string BulkLoad::DIR_BULK_TEMP_JOB("tmpjob"); /* static */ const std::string BulkLoad::DIR_BULK_IMPORT("/data/import/"); -/* static */ const std::string BulkLoad::DIR_BULK_LOG("/log/"); /* static */ bool BulkLoad::fNoConsoleOutput = false; //------------------------------------------------------------------------------ @@ -275,9 +275,9 @@ int BulkLoad::loadJobInfo( const Job& curJob = fJobInfo.getJob(); string logFile, errlogFile; - logFile = fRootDir + DIR_BULK_LOG + "Job_" + + logFile = std::string(MCSLOGDIR) + "/cpimport/" + "Job_" + Convertor::int2Str( curJob.id ) + LOG_SUFFIX; - errlogFile = fRootDir + DIR_BULK_LOG + "Job_" + + errlogFile = std::string(MCSLOGDIR) + "/cpimport/" + "Job_" + Convertor::int2Str( curJob.id ) + ERR_LOG_SUFFIX; if (disableConsoleOutput()) @@ -1055,7 +1055,7 @@ int BulkLoad::processJob( ) (fBulkMode == BULK_MODE_REMOTE_MULTIPLE_SRC)) tableInfo->setBulkLoadMode( fBulkMode, fBRMRptFileName ); - tableInfo->setErrorDir(getErrorDir()); + tableInfo->setErrorDir(string(getErrorDir())); tableInfo->setTruncationAsError(getTruncationAsError()); rc = manageImportDataFileList( curJob, i, tableInfo ); diff --git a/writeengine/bulk/we_tableinfo.cpp b/writeengine/bulk/we_tableinfo.cpp index 06d96dafe..8f0b02c8b 100644 --- a/writeengine/bulk/we_tableinfo.cpp +++ b/writeengine/bulk/we_tableinfo.cpp @@ -1577,9 +1577,9 @@ void TableInfo::writeBadRows( const std::vector* errorDatRows, rejectFileNameToLog = fRejectDataFileName; } - oss << "Number of rows with errors = " << fRejectDataCnt << - ". Exact error rows are listed in file " << - rejectFileNameToLog; + oss << "Number of rows with bad data = " << fRejectDataCnt << + ". Exact rows are listed in file located here: " << + fErrorDir; fLog->logMsg(oss.str(), MSGLVL_INFO1); fRejectDataCnt = 0; @@ -1691,9 +1691,9 @@ void TableInfo::writeErrReason( const std::vector< std::pairlogMsg(oss.str(), MSGLVL_INFO1); fRejectErrCnt = 0; diff --git a/writeengine/splitter/we_cmdargs.cpp b/writeengine/splitter/we_cmdargs.cpp index f54052348..e19a42dbe 100644 --- a/writeengine/splitter/we_cmdargs.cpp +++ b/writeengine/splitter/we_cmdargs.cpp @@ -77,7 +77,8 @@ WECmdArgs::WECmdArgs(int argc, char** argv) : fbTruncationAsError(false), fUUID(boost::uuids::nil_generator()()), fConsoleOutput(true), - fTimeZone("SYSTEM") + fTimeZone("SYSTEM"), + fErrorDir(string(MCSLOGDIR)+"/cpimport/") { try { @@ -146,6 +147,9 @@ std::string WECmdArgs::getCpImportCmdLine() aSS << " -f " << fPmFilePath; } + if (fErrorDir.length() > 0) + aSS << " -L " << fErrorDir; + if (fUsername.length() > 0) aSS << " -U " << fUsername; @@ -567,7 +571,10 @@ void WECmdArgs::usage() << "\t-K\tS3 Authentication Secret (for S3 imports)\n" << "\t-t\tS3 Bucket (for S3 imports)\n" << "\t-H\tS3 Hostname (for S3 imports, Amazon's S3 default)\n" - << "\t-g\tS3 Region (for S3 imports)\n"; + << "\t-g\tS3 Region (for S3 imports)\n" + << "\t-L\tDirectory for the output .err and .bad files.\n" + << "\t\tDefault is " << string(MCSLOGDIR); + cout << "\nExample1: Traditional usage\n" << "\tcpimport -j 1234"; @@ -602,7 +609,7 @@ void WECmdArgs::parseCmdLineArgs(int argc, char** argv) fPrgmName = string(MCSBINDIR) + "/" + "cpimport.bin"; //argv[0] is splitter but we need cpimport while ((aCh = getopt(argc, argv, - "d:j:w:s:v:l:r:b:e:B:f:q:ihm:E:C:P:I:n:p:c:ST:Ny:K:t:H:g:U:")) + "d:j:w:s:v:l:r:b:e:B:f:q:ihm:E:C:P:I:n:p:c:ST:Ny:K:t:H:g:U:L:")) != EOF) { switch (aCh) @@ -942,6 +949,12 @@ void WECmdArgs::parseCmdLineArgs(int argc, char** argv) break; } + case 'L': // -L set the output location of .bad/.err files + { + fErrorDir = optarg; + break; + } + default: { std::string aErr = "Unknown command line option " + aCh; diff --git a/writeengine/splitter/we_cmdargs.h b/writeengine/splitter/we_cmdargs.h index 76adac448..2fcdf9b89 100644 --- a/writeengine/splitter/we_cmdargs.h +++ b/writeengine/splitter/we_cmdargs.h @@ -268,6 +268,14 @@ public: { return fS3Region; } + std::string getErrorDir() const + { + return fErrorDir; + } + void setErrorDir(std::string fErrorDir) + { + this->fErrorDir = fErrorDir; + } std::string& getUsername(); std::string PrepMode2ListOfFiles(std::string& FileName); // Bug 4342 void getColumnList( std::set& columnList ) const; @@ -329,6 +337,7 @@ private: // variables for SplitterApp bool fConsoleOutput; // If false, no output to console. std::string fTimeZone; // Timezone to use for TIMESTAMP datatype std::string fUsername; // Username of the data files owner + std::string fErrorDir; }; //---------------------------------------------------------------------- diff --git a/writeengine/splitter/we_sdhandler.cpp b/writeengine/splitter/we_sdhandler.cpp index a87d3389f..47282508b 100644 --- a/writeengine/splitter/we_sdhandler.cpp +++ b/writeengine/splitter/we_sdhandler.cpp @@ -474,20 +474,20 @@ void WESDHandler::setup() std::string aErrLogName; if (fRef.fCmdArgs.isJobLogOnly()) - aLogName = fRef.fCmdArgs.getBulkRootDir() + "/log/" + + aLogName = std::string(MCSLOGDIR) + "/cpimport/" + "cpimport_Job_" + fRef.fCmdArgs.getJobId() + ".log"; else - aLogName = fRef.fCmdArgs.getBulkRootDir() + "/log/" + + aLogName = std::string(MCSLOGDIR) + "/cpimport/" + "cpimport_" + aTimeStamp + "_" + aPid.str() + ".log"; if (getDebugLvl() > 1) cout << "LogName : " << aLogName << endl; if (fRef.fCmdArgs.isJobLogOnly()) - aErrLogName = fRef.fCmdArgs.getBulkRootDir() + "/log/" + + aErrLogName = std::string(MCSLOGDIR) + "/cpimport/" + "cpimport_Job_" + fRef.fCmdArgs.getJobId() + ".err"; else - aErrLogName = fRef.fCmdArgs.getBulkRootDir() + "/log/" + + aErrLogName = std::string(MCSLOGDIR) + "/cpimport/" + "cpimport_" + aTimeStamp + "_" + aPid.str() + ".err"; @@ -1529,7 +1529,7 @@ void WESDHandler::onErrorFile(int PmId, messageqcpp::SBS& Sbs) { std::string aFile = aTmpFileName.substr(aPos + 1); //+1 to pass '/' - std::string aInFile = fRef.getLocFile(); // input file + std::string aInFile = fRef.fCmdArgs.getErrorDir(); if (aInFile != "/dev/stdin") { @@ -1627,7 +1627,7 @@ void WESDHandler::onBadFile(int PmId, messageqcpp::SBS& Sbs) { std::string aFile = aTmpFileName.substr(aPos + 1); //+1 to pass '/' - std::string aInFile = fRef.getLocFile(); // input file + std::string aInFile = fRef.fCmdArgs.getErrorDir(); if (aInFile != "/dev/stdin") { diff --git a/writeengine/xml/we_xmlgenproc.cpp b/writeengine/xml/we_xmlgenproc.cpp index 5789dca15..a50fa3ecd 100644 --- a/writeengine/xml/we_xmlgenproc.cpp +++ b/writeengine/xml/we_xmlgenproc.cpp @@ -29,6 +29,7 @@ #include "we_config.h" #include "we_xmltag.h" #include "we_xmlgendata.h" +#include "mcsconfig.h" #include #include @@ -39,7 +40,6 @@ namespace const char* DICT_TYPE("D"); const char* ENCODING("UTF-8"); const char* LOGNAME("Jobxml_"); -const std::string LOGDIR("/log/"); const char* JOBNAME("Job_"); } @@ -60,9 +60,9 @@ XMLGenProc::XMLGenProc(XMLGenData* mgr, bool bUseXmlLogFile, bool bSysCatRpt) : fSysCatRpt(bSysCatRpt), fUseXmlLogFile(bUseXmlLogFile) { - std::string logFile(Config::getBulkRoot() + std::string(LOGDIR) + LOGNAME + + std::string logFile(std::string(MCSLOGDIR) + "/cpimport/" + LOGNAME + fInputMgr->getParm(XMLGenData::JOBID) + ".log" ); - std::string errFile(Config::getBulkRoot() + std::string(LOGDIR) + LOGNAME + + std::string errFile(std::string(MCSLOGDIR) + "/cpimport/" + LOGNAME + fInputMgr->getParm(XMLGenData::JOBID) + ".err" ); fErrorString.append(errFile + "\n");