diff --git a/edexOsgi/build.edex/esb/bin/linux-x86-64/libwrapper.so b/edexOsgi/build.edex/esb/bin/linux-x86-64/libwrapper.so new file mode 100644 index 0000000000..1b843a476d Binary files /dev/null and b/edexOsgi/build.edex/esb/bin/linux-x86-64/libwrapper.so differ diff --git a/edexOsgi/build.edex/esb/bin/linux-x86-64/wrapper b/edexOsgi/build.edex/esb/bin/linux-x86-64/wrapper new file mode 100644 index 0000000000..07355b4949 Binary files /dev/null and b/edexOsgi/build.edex/esb/bin/linux-x86-64/wrapper differ diff --git a/edexOsgi/build.edex/esb/bin/linux-x86-64/wrapper.conf b/edexOsgi/build.edex/esb/bin/linux-x86-64/wrapper.conf new file mode 100644 index 0000000000..3979169e24 --- /dev/null +++ b/edexOsgi/build.edex/esb/bin/linux-x86-64/wrapper.conf @@ -0,0 +1,26 @@ +#******************************************************************** +## +# This software was developed and / or modified by Raytheon Company, +# pursuant to Contract DG133W-05-CQ-1067 with the US Government. +# +# U.S. EXPORT CONTROLLED TECHNICAL DATA +# This software product contains export-restricted data whose +# export/transfer/disclosure is restricted by U.S. law. Dissemination +# to non-U.S. persons whether in the United States or abroad requires +# an export license or other authorization. +# +# Contractor Name: Raytheon Company +# Contractor Address: 6825 Pine Street, Suite 340 +# Mail Stop B8 +# Omaha, NE 68106 +# 402.291.0100 +# +# See the AWIPS II Master Rights File ("Master Rights File.pdf") for +# further licensing information. +## +# Wrapper Properties +#******************************************************************** + +# Java Library Path (location of Wrapper.DLL or libwrapper.so) +wrapper.java.library.path.1=%EDEX_HOME%/bin/linux-x86-64/ +wrapper.java.library.path.4=%EDEX_HOME%/lib/native/linux64/ diff --git a/edexOsgi/build.edex/esb/bin/wrapper.conf b/edexOsgi/build.edex/esb/bin/wrapper.conf new file mode 100644 index 0000000000..125d07fa05 --- /dev/null +++ b/edexOsgi/build.edex/esb/bin/wrapper.conf @@ -0,0 +1,208 @@ +#******************************************************************** +## +# This software was developed and / or modified by Raytheon Company, +# pursuant to Contract DG133W-05-CQ-1067 with the US Government. +# +# U.S. EXPORT CONTROLLED TECHNICAL DATA +# This software product contains export-restricted data whose +# export/transfer/disclosure is restricted by U.S. law. Dissemination +# to non-U.S. persons whether in the United States or abroad requires +# an export license or other authorization. +# +# Contractor Name: Raytheon Company +# Contractor Address: 6825 Pine Street, Suite 340 +# Mail Stop B8 +# Omaha, NE 68106 +# 402.291.0100 +# +# See the AWIPS II Master Rights File ("Master Rights File.pdf") for +# further licensing information. +## +# Wrapper Properties +#******************************************************************** + +#include.required wrapper.conf + +#wrapper.debug=TRUE +set.default.EDEX_HOME=../.. +wrapper.working.dir=.. + +# Java Application +wrapper.java.command=java + +# necessary for etc/init.d/edex_camel +wrapper.pidfile=./%EDEX_RUN_MODE%.pid + +# Java Main class. This class must implement the WrapperListener interface +# or guarantee that the WrapperManager class is initialized. Helper +# classes are provided to do this for you. See the Integration section +# of the documentation for details. +wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperSimpleApp + +# Java Classpath (include wrapper.jar) Add class path elements as +# needed starting from 1 +wrapper.java.classpath.1=%EDEX_HOME%/bin/wrapper.jar +wrapper.java.classpath.2=%EDEX_HOME%/lib/plugins/com.raytheon.uf.edex.esb.camel.launcher.jar +wrapper.java.classpath.3=%EDEX_HOME%/conf/ +wrapper.java.classpath.4=%EDEX_HOME%/conf/cache/ +wrapper.java.classpath.5=%EDEX_HOME%/conf/spring/ + +# set the umask for file/directory creation by the Java process +wrapper.java.umask=0002 + +# Java Library Path +wrapper.java.library.path.2=%LD_LIBRARY_PATH% +wrapper.java.library.path.3=%EDEX_HOME%/lib/native/linux32/ + +# Java Additional Parameters +# note that n is the parameter number starting from 1. +wrapper.java.additional.1=-Dedex.run.mode=%EDEX_RUN_MODE% +wrapper.java.additional.2=-Dedex.home=%EDEX_HOME% + +# sets the Maximum Permanent Generation memory size +wrapper.java.additional.3=-XX:MaxPermSize=%MAX_PERM_SIZE% + +# sets the JS dev mode flag into the System properties +wrapper.java.additional.4=-Dedex.dev.mode=%DEV_MODE% + +# turn on JMX access to basic JVM instrumentation +wrapper.java.additional.5=-Dcom.sun.management.jmxremote + +# Enforces GMT to be used as the timezone +wrapper.java.additional.6=-Duser.timezone=GMT + +wrapper.java.additional.7=-XX:+UseConcMarkSweepGC + +wrapper.java.additional.8=-XX:+CMSIncrementalMode + +wrapper.java.additional.9=-Djava.net.preferIPv4Stack=true +wrapper.java.additional.10=-Ddb.addr=%DB_ADDR% +wrapper.java.additional.11=-Ddb.port=%DB_PORT% +wrapper.java.additional.12=-Dbroker.addr=%BROKER_ADDR% + +wrapper.java.additional.13=-Ddc.db.name=%DC_DB_NAME% +wrapper.java.additional.14=-Dfxa.db.name=%FXA_DB_NAME% +wrapper.java.additional.15=-Dhm.db.name=%HM_DB_NAME% +wrapper.java.additional.16=-Dih.db.name=%IH_DB_NAME% +wrapper.java.additional.17=-Daw.site.identifier=%AW_SITE_IDENTIFIER% +wrapper.java.additional.18=-Ddata.archive.root=%DATA_ARCHIVE_ROOT% + +wrapper.java.additional.19=-Djms.pool.min=%JMS_POOL_MIN% +wrapper.java.additional.20=-Djms.pool.max=%JMS_POOL_MAX% +wrapper.java.additional.21=-Ddb.metadata.pool.min=%METADATA_POOL_MIN% +wrapper.java.additional.22=-Ddb.metadata.pool.max=%METADATA_POOL_MAX% + +wrapper.java.additional.23=-Dcom.sun.management.jmxremote.port=%EDEX_JMX_PORT% +wrapper.java.additional.24=-Dcom.sun.management.jmxremote.authenticate=false +wrapper.java.additional.25=-Dcom.sun.management.jmxremote.ssl=false + +wrapper.java.additional.26=-DByteArrayOutputStreamPool.maxPoolSize=%SERIALIZE_POOL_MAX_SIZE% +wrapper.java.additional.27=-DByteArrayOutputStreamPool.initStreamSize=%SERIALIZE_STREAM_INIT_SIZE_MB% +wrapper.java.additional.28=-DByteArrayOutputStreamPool.maxStreamSize=%SERIALIZE_STREAM_MAX_SIZE_MB% + +wrapper.java.additional.29=-Dpypies.server=%PYPIES_SERVER% +wrapper.java.additional.30=-Dpypies.maxConnections=%PYPIES_MAX_CONN% + +wrapper.java.additional.31=%DEBUG_PARAM_1% +wrapper.java.additional.32=%DEBUG_PARAM_2% +wrapper.java.additional.33=%DEBUG_PARAM_3% +wrapper.java.additional.34=%DEBUG_PARAM_4% +wrapper.java.additional.35=%PROFILER_PARAM_1% + +wrapper.java.additional.36=-Dlog4j.configuration=%LOG4J_CONF% + +# moved these from environment.xml to setup.env +wrapper.java.additional.37=-Dhttp.server=%HTTP_SERVER% +wrapper.java.additional.38=-Djms.server=%JMS_SERVER% + +wrapper.java.additional.39=-DHighMem=%HIGH_MEM_FLAG% +wrapper.java.additional.40=-Dmanagement.port=%MGMT_PORT% + +wrapper.java.additional.41=-Dqpid.dest_syntax=BURL +wrapper.java.additional.42=-Dweb.port=8080 +wrapper.java.additional.43=-Dconfidential.port=8443 +wrapper.java.additional.44=-Dhttp.port=%HTTP_PORT% +wrapper.java.additional.45=-Dedex.arch=%EDEX_ARCH% +wrapper.java.additional.46=-Dedex.tmp=%TEMP_DIR% + +# Initial Java Heap Size (in MB) +wrapper.java.initmemory=%INIT_MEM% + +# Maximum Java Heap Size (in MB) +wrapper.java.maxmemory=%MAX_MEM% + +# Application parameters. Add parameters as needed starting from 1 +wrapper.app.parameter.1=com.raytheon.uf.edex.esb.Main +wrapper.app.parameter.2=start + +wrapper.ping.timeout=0 + +#******************************************************************** +# Wrapper Logging Properties +#******************************************************************** +# Format of output for the console. (See docs for formats) +wrapper.console.format=M + +# Log Level for console output. (See docs for log levels) +wrapper.console.loglevel=%CONSOLE_LOGLEVEL% + +# Log file to use for wrapper output logging. +wrapper.logfile=%EDEX_HOME%/logs/edex-%EDEX_RUN_MODE%-YYYYMMDD.log + +# Format of output for the log file. (See docs for formats) +wrapper.logfile.format=M + +# Log Level for log file output. (See docs for log levels) +wrapper.logfile.loglevel=INFO + +# Set the log rollover mode for the log. +# DATE - creates a new file each day - file name must include YYYYMMDD. +# SIZE - uses log size for log roll-over. +wrapper.logfile.rollmode=DATE + +# Maximum size that the log file will be allowed to grow to before +# the log is rolled. Size is specified in bytes. The default value +# of 0, disables log rolling. May abbreviate with the 'k' (kb) or +# 'm' (mb) suffix. For example: 10m = 10 megabytes. +# Note: ignored for wrapper.logfile.rollmode=DATE +wrapper.logfile.maxsize=1000m + +# Maximum number of rolled log files which will be allowed before old +# files are deleted. The default value of 0 implies no limit. +wrapper.logfile.maxfiles=30 + +# Log Level for sys/event log output. (See docs for log levels) +wrapper.syslog.loglevel=NONE + + +#******************************************************************** +# Wrapper Windows Properties +#******************************************************************** +# Title to use when running as a console +wrapper.console.title=EDEX %EDEX_RUN_MODE% + +#******************************************************************** +# Wrapper Windows NT/2000/XP Service Properties +#******************************************************************** +# WARNING - Do not modify any of these properties when an application +# using this configuration file has been installed as a service. +# Please uninstall the service before modifying this section. The +# service can then be reinstalled. + +# Name of the service +wrapper.ntservice.name=EDEX + +# Display name of the service +wrapper.ntservice.displayname=EDEX + +# Description of the service +wrapper.ntservice.description=EDEX ESB + +# Service dependencies. Add dependencies as needed starting from 1 +wrapper.ntservice.dependency.1= + +# Mode in which the service is installed. AUTO_START or DEMAND_START +wrapper.ntservice.starttype=AUTO_START + +# Allow the service to interact with the desktop. +wrapper.ntservice.interactive=false diff --git a/nativeLib/rary.ohd.filesystem/awips/hydroapps/whfs/bin/load_maxfcst.LX b/nativeLib/rary.ohd.filesystem/awips/hydroapps/whfs/bin/load_maxfcst.LX new file mode 100644 index 0000000000..74b0326628 Binary files /dev/null and b/nativeLib/rary.ohd.filesystem/awips/hydroapps/whfs/bin/load_maxfcst.LX differ diff --git a/pythonPackages/qpid/bin/monitor_qpid_host.sh b/pythonPackages/qpid/bin/monitor_qpid_host.sh new file mode 100644 index 0000000000..6c8d3c2c59 --- /dev/null +++ b/pythonPackages/qpid/bin/monitor_qpid_host.sh @@ -0,0 +1,292 @@ +#!/bin/bash + +# script to gather information on a qpid host +# 20 July 2012 - Initial script (kpj) + + +function setupEnv() { + + runTimeDate=$( date +"%Y%m%d %H:%M:%S" ) + nowTimeDate=$( date +%A ) + logDirectory=/data/fxa/qpid + logName=$( basename $0 .sh ).${nowTimeDate}.log + nasHost=nas1 + nasVolName=dataFXA # This is so we can change it for new nas! + lsofCommand="lsof -Pns -p" + + if [[ ${logDirectory}/${logName} -ot ${logDirectory}/$( basename $0 .sh ).$(date --date='1 day ago' +%A).log ]] + then + for myFile in ${logName} ${nowTimeDate}-lsof_qpid.out ${nowTimeDate}-qpid-stat.out ${nowTimeDate}-netstat.out ${nowTimeDate}-ipvsadm.out + do + echo > ${logDirectory}/${myFile} + done + gzip -f ${logDirectory}/*$(date --date='1 day ago' +%A)* + fi + + +} + +function color_echo() { + + # To echo something to stdout with color + # + # Usage: color_echo $COLOR $BOLD $STRING + # + # COLOR: Color string from: black, green, blue, red, yellow, white + # BOLD: 1 = true, 0 = false + # STRING: String to echo + + sColor=$1 + sBold=$2 + sString=$3 + + if [[ -z "${sColor}" || -z "${sBold}" || -z "${sString}" ]] || [[ ${sBold} -ne 1 && ${sBold} -ne 0 ]] + then + echo -e "ERROR IN $FUNCNAME:\t Usage:\t$FUNCNAME $COLOR $BOLD $STRING" + else + case ${sColor} in + "green" ) colorInt=32 ;; + "blue" ) colorInt=34 ;; + "red" ) colorInt=31 ;; + "yellow" ) colorInt=33 ;; + "white" ) colorInt=37 ;; + "black" ) colorInt=30 ;; + * ) colorInt="" ;; + esac + + if [[ ${sBold} -eq 0 ]]; then sBold="" ; fi + echo -e "\033[${sBold};${colorInt}m${sString}\033[0m" + fi + + return 0 +} + +function echoDate() { + + echo -ne "|-- $( date +"%Y%m%d %H:%M:%S" )" + +} + +function echoFail() { + + echoDate && color_echo red 1 "\t$1" + +} + +function cleanup() { + + if [[ "${hadToMount}" ]] + then + umount /data/fxa + fi + +} + +function runlsof() { + + echo -ne "\n| START " >> ${logDirectory}/${nowTimeDate}-lsof_qpid.out + echoDate >> ${logDirectory}/${nowTimeDate}-lsof_qpid.out + echo -e "----------------------------------------------------------------|\n" >> ${logDirectory}/${nowTimeDate}-lsof_qpid.out + + if ${lsofCommand} ${qpidPid} >> ${logDirectory}/${nowTimeDate}-lsof_qpid.out 2>&1 + then + return 0 + else + return 1 + fi + +} + +function captureQpidStat() { + + local returnCode=0 + + echo -ne "\n| START " >> ${logDirectory}/${nowTimeDate}-qpid-stat.out + echoDate >> ${logDirectory}/${nowTimeDate}-qpid-stat.out + echo -e "----------------------------------------------------------------|\n" >> ${logDirectory}/${nowTimeDate}-qpid-stat.out + + numQpidConnections=$( qpid-stat -c | wc -l ) + (( numQpidConnections-=3 )) + echo -e "Total Number of QPID Connections: ${numQpidConnections}" >> ${logDirectory}/${nowTimeDate}-qpid-stat.out + echo >> ${logDirectory}/${nowTimeDate}-qpid-stat.out + + for cmdArg in "-b" "-c" "-s" "-e" "-q -Smsg" + do + if ! qpid-stat ${cmdArg} >> ${logDirectory}/${nowTimeDate}-qpid-stat.out 2>&1 + then + (( returnCode+=1 )) + echoFail "\tqpid-stat ${cmdArg} returned non-zero exit code" + fi + echo >> ${logDirectory}/${nowTimeDate}-qpid-stat.out + done + + return ${returnCode} +} + +function captureNetstat() { + + echo -ne "\n| START " >> ${logDirectory}/${nowTimeDate}-netstat.out + echoDate >> ${logDirectory}/${nowTimeDate}-netstat.out + echo -e "----------------------------------------------------------------|\n" >> ${logDirectory}/${nowTimeDate}-netstat.out + + if netstat -tunape | grep :5672 >> ${logDirectory}/${nowTimeDate}-netstat.out 2>&1 + then + return 0 + else + return 1 + fi +} + +function captureIPVS() { + + local returnCode=0 + + echo -ne "\n| START " >> ${logDirectory}/${nowTimeDate}-ipvsadm.out 2>&1 + echoDate >> ${logDirectory}/${nowTimeDate}-ipvsadm.out 2>&1 + echo -e "----------------------------------------------------------------|\n" >> ${logDirectory}/${nowTimeDate}-ipvsadm.out 2>&1 + + if ! ipvsadm --list >> ${logDirectory}/${nowTimeDate}-ipvsadm.out 2>&1 + then + (( returnCode+=1 )) + fi + echo >> ${logDirectory}/${nowTimeDate}-ipvsadm.out + + if ! ipvsadm --list --stats >> ${logDirectory}/${nowTimeDate}-ipvsadm.out 2>&1 + then + (( returnCode+=1 )) + fi + echo >> ${logDirectory}/${nowTimeDate}-ipvsadm.out + + if ! ipvsadm --list --connection --sort >> ${logDirectory}/${nowTimeDate}-ipvsadm.out 2>&1 + then + (( returnCode+=1 )) + fi + echo >> ${logDirectory}/${nowTimeDate}-ipvsadm.out + + return ${returnCode} +} + + + +## main() +setupEnv + +{ + +echo -ne "\n| START " && echoDate && echo -e "----------------------------------------------------------------|\n" + +if ! grep /data/fxa /proc/mounts | grep nfs 2>&1 > /dev/null +then + # /data/fxa isn't an nfs mount + if mount ${nasHost}:${nasVolName} /data/fxa + then + hadToMount=true + else + echoFail "ERROR:\t Couldn't mount /data/fxa and that is where the log goes!" + exit 1 + fi +fi + +# now check write permission +if [[ ! -d ${logDirectory} ]] +then + if ! mkdir -p ${logDirectory} > /dev/null 2>&1 + then + echoFail "ERROR:\t Couldn't create ${logDirectory}" + exit 1 + fi +fi + +if ! touch ${logDirectory}/testfile > /dev/null 2>&1 +then + echoFail "ERROR:\tNo write permissions to ${logDirectory}" + exit 1 +else + rm ${logDirectory}/testfile +fi + +if ! qpidPid=$( pidof qpidd ) +then + echoFail "ERROR:\tCan't find qpidd on this host (run: pidof qpidd failed)." + exit 1 +fi + +runlsof & +functionPID=$! +_cnt=0 +while ps -p ${functionPID} > /dev/null +do + sleep 1 + _cnt=$(($_cnt+1)) + if [[ ${_cnt} -ge 10 ]] + then + kill -9 ${functionPID} + echoFail "ERROR: lsof running for more than 10 seconds, killing" + fi +done + +if ! wait ${functionPID} +then + echoFail "ERROR: Grabbing of lsof on qpidd failed" +fi + + +captureQpidStat & +functionPID=$! +_cnt=0 +while ps -p ${functionPID} > /dev/null +do + sleep 1 + _cnt=$(($_cnt+1)) + if [[ ${_cnt} -ge 20 ]] + then + kill -9 ${functionPID} + echoFail "ERROR: qpid-stat running for more than 20 seconds, killing" + fi +done + +if ! wait ${functionPID} +then + echoFail "ERROR: Grabbing of qpid-stat failed" +fi + +captureNetstat & +functionPID=$! +_cnt=0 +while ps -p ${functionPID} > /dev/null +do + sleep 1 + _cnt=$(($_cnt+1)) + if [[ ${_cnt} -ge 10 ]] + then + kill -9 ${functionPID} + echoFail "ERROR: netstat running for more than 10 seconds, killing" + fi +done + +if ! wait ${functionPID} +then + echoFail "ERROR: Grabbing of netstat failed" +fi + +if ! pidof pulse > /dev/null 2>&1 +then + echoFail "ERROR: IPVS doesn't appear to be running on this host ($( hostname ))" +else + captureIPVS & + functionPID=$! + _cnt=0 + while ps -p ${functionPID} > /dev/null + do + sleep 1 + _cnt=$(($_cnt+1)) + if [[ ${_cnt} -ge 20 ]] + then + kill -9 ${functionPID} + echoFail "ERROR: ipvs capture running for more than 20 seconds, killing" + fi + done +fi + +} >> ${logDirectory}/${logName} 2>&1 +exit 0