1. ProTop Knowledge Base
  2. Advanced Alerting Configuration

Local environment variables for UNIX and Linux

The bin/localenv.x file documents the environment variables used by ProTop (as of version 325).

#!/bin/sh
#
# local environment
#
# if $PROTOP/bin/localenv exists it will be "dotted" into protopenv and the contents will
# become available to scripts that reference protopenv


### possibly useful variables -- but if you're not sure what you're doing don't change them


# related to non-standard communications with the portal, different ports, SSL, proxy servers
#

# export PORTALPORT=80            # port to use for portal communications, default port 80
# export PORTALOPTIONS=''        # options to pass to the socket CONNECT() method for portal communications, use "-ssl -nohostverify" to enable SSL, "-clientConnectTimeout 500" is also possibly useful
# export PROXY=''            # proxy server string if needed for *portal* communications, "username:password@proxyserver:proxyport" - watch out for magic characters like '$'

## obsolete and unused ## export USESSL=y    # set the default port to 443
## obsolete and unused ## export CNXPARAM=''    # Extra parameters for socket connections to the portal, i.e. "-clientConnectTimeout 500"


# general stuff
#

# export USESOCKETS=no            # Totally disables all socket code.  Should not be needed but if you want to be *really* sure...
# export WAITLIMIT=5            # Modify the timeout value for socket communications, don't change this unless your name is "Tom"
# export MINWAIT=0.1            # Minimum timeout value for socket communications, don't change this unless your name is "Tom"
# export READSIZE=8            # The size of the socket read buffer in MB
# export VOTRX=1800            # How old is a TRX vefore it is considered "very old"? (default 1800 seconds)
# export BOGOMIPS=1000000        # How many spins to calculate bogoMIPs, 1MM is the default, 0 disables
# export IOFILENAME=/tmp/bigfile    # CSV list of large files to randomly read (default is the list of db extents)
# export IORESP=100            # Number of random seeks for ioResponse, 0 disables
# export USEREXP=no            # Disables the "user exerience" dashboard metric
# export PICACHECKINTERVAL=900        # How often to shell out and check "pica" status, default 60 seconds, 0 disables
# export APPSRVSTUCK=300        # How long an app server can be unresponsive before we consider it "stuck" (seconds)
# export ZOOMTO=30            # When something interesting happens the pt3agent can "zoom" the sample interval in to this frequency
# export NAGME=no            # This turns OFF the "message of the day" tips and suggestions feature
# export LKTBLLIM=9999            # How many lock table entries might we look at before giving up? (mostly, but not quite, obsolete in oe11.4+)
# export DFCMD="df -px tmpfs"        # Alternative df command for disk info screens (Solaris, HPUX and AIX might need this) (use DISABLE to disable)
# export DFCMDI="df -pix tmpfs"        # Alternative df command for disk info screens inode info (currently only supported on Linux) (use DISABLE to disable)
# export MNTCMD="mount"            # Alternative mount command for disk info screens mount info (Solaris, HPUX and AIX might need this) (use DISABLE to disable)
# export PTSERVER=jim            # A name for the server - using this is probably a bad idea 
# export USERFUTIL=yes            # Use rfutil rather than VSTs to determine ai extent status
# export AICHECKINTERVAL=300        # How often to shell out and check ai status (pre oe11.6), default 60 seconds, 0 disables
# export USERLOCK=yes            # Enable 11.7+ _UserLock stats on UIO screen -- can be *very* slow with large lock tables or many users
# export PTDLCMD=http            # The command to use to download updates.  The default is "http" (use internal socket code), "curl" or "wget" shell out
# export MAILCMD="mailx &3 -s '&2' &1"    # The command to send mail (the "@" command inside ChUI ProTop)
# export PTSCREENMAIL=tom@wss.com    # where to mail screen contents when the @ key is pressed
# export SKIPLGSCAN=yes            # Skip the scan of the .lg file at startup - this may result in unknown startup parameter values
# export UPDAREADATA=21600        # Update storage area data and table/index xref bits obtained from dbanalys - default 6 hours, 0 = disable
# export PTOLDPORTAL=yes        # Support for obsolete backward compatibility for old-style "custid-data.portal..." configurations
# export DBIDOWNGRADE=yes        # Downgrade PAGE to ALARM if an alert is related to area 6 or a DBI file (default = yes)
# export TERMHOTLINK=yes        # certain terminals (chrome hterm, not putty) support escape sequences that create clickable links (see the help screen for an example)
# export XTRASTART="cuwa"        # Export an initial set of key commands for startup.
# export USEACTBUFF=no            # Do not use _actBuffer in dc/dashboard.p, 11.7 and 12.X introduced some new fields and populating them is done by scanning ALL of -B which can be quite slow
# export OSINFOFREQINT=60        # Frequency of osinfo samples via os-commands when running interactively (protop.p) (this feature does not impact Linux)
# export OSINFOFREQBAT=3600        # Frequency of osinfo samples via os-commands when running in batch mode (pt3agent.p) (this feature does not impact Linux)
# export UPDATECHECK=300        # Frequency of checks for update config files from the portal
# export RESPAWNCHECK=300        # Frequency of checks for agents needing to be respawned
# export SAMPLELIMIT=10            # exit after N samples - only applies to ProTop RT, pt3agent ignores this
# export HTTPVERSION=HTTP/1.0        # supported values are HTTP/1.0 and HTTP/1.1, 1.0 is the default
# export AUTORESIZE=no            # turn off support for automatically detecting window resizing (Unix only), any value other than "no" is a yes
# export DYNLIBC=no            # use dynamic libc.so call for detecting resizing, any value other than "no" is a yes
# export LIBOSGETWINSIZE=libc.so.6    # path to a shared object containing ioctl() (usually some variation on libc.so), defaults to libc.so.6

# related to monitoring Pro2
#

# export PRO2QSKIP2SEQ=0        # Skip to replQueue sequence# - IOW skip orphans, 0 = don't skip any
# export PRO2QCOUNTLIM=1000        # Do not count every record in the replication queue if it is deeper than this
# export PRO2QESTIMATE=yes        # Estimate queue depth proportionally when queues get too deep to count


# Screen colors
#
# export PTCOLORS="2,8,8,11,19,47,2,6,12,5"    # default (protop-320)
# export PTCOLORS="0,0,0,0,0,0,0,0,0,0"        # monochrome
# export PTCOLORS="2,8,8,11,18,1,2,22,1,3"    # accessible (high contrast)
# export PTCOLORS="2,8,8,11,19,47,2,6,12,5"    # dark mode


# process list processing
#
# protop checks running processes to determine when a new agent needs to be started, these variables help to manage that process
#

# export USEWMIC4PS=no            # default = yes for oe10, no for oe11+, if no then we will use System.Management.dll on Windows and avoid screen scraping
# export WMICPIDLBL=ProcessId        # text of the ProcessId column label when WMIC is in use for process lists (default English = ProcessId)
# export GETPID="ps -p &1 -f"        # ps command to return a specific process' command line, alternate: 'ps -ef | grep " &1 "' (ps -p _should_ be *much* more efficient but isn't really)
# export GETAGENTLIST='ps -C _progres -f | grep "p util/pt3agent"'    # return a list of running pt3agent processes


### obsolete, but documented for completeness
#
# export SENDTYPE=JSON            # How to package data, choices are JSON or XML.  Obsolete, everything is JSON now


### bin/aipurge.sh
#
# export PURGEDAYS=90            # the number of days of AI logs to keep, the default is 30
# export AIARCDIR1=/ailog/arc1        # first target directory
# export AIARCDIR2=/ailog/arc2        # second target directory


### bin/lgrot.sh and bin/logrotate.sh
#
# export LGARCDIR=/archive/logs        # Where to archive truncated .lg files when bin/lgrot.sh runs

### bin/logrotate.sh
#
# LOGHIST=n                  # Number of weeks of full db.lg to retain
# FLOGHIST=n                  # Number of weeks of filtered db.lg to retain
# LOGFILTER=<filter file>        # File containing strings to filter out, one string per line
#                    # Ex.: (8873) 
#                    #      (452)
#                    #      (453)
#


### bin/syncio.sh
#
# export SYNCIODIR=/db/tmp        # directory for bin/syncio.sh to use, syncio.sh command line argument takes precedence - this is a default value


### these are only useful to paid portal customers

# export PCTLASTX=yes            # turns ON alerts for the last fixed extent becoming close to full
# export LOGRDTHOLD=10000        # threshold for log2rec alerts
#
# export BIBKUP_INFO=0            # info provided with every backup, regardless of alerting, if set to 1.
# export BIBKUP_ALERT=60         # alerts if the bi backup phase takes longer than the value.  Default 60 seconds.
# export BIBKUP_ALARM=120        # alarm  if the bi backup phase takes longer than the value.  Default 300 seconds.
# export BIBKUP_PAGE=300        # page   if the bi backup phase takes longer than the value.  No default, you MUST set a value to be paged.

# export BKUP_INFO=0            # info provided with every backup, regardless of alerting, if set to 1.
# export BKUP_ALERT=7200        # alerts if the backup takes longer than the value.  Default 2 hours.
# export BKUP_ALARM=14400        # alarm  if the backup takes longer than the value.  Default 4 hours.
# export BKUP_PAGE=28800        # page   if the backup takes longer than the value.  No default, you MUST set a value to be paged.

# export QP_INFO=0            # info provided with every quiet point, regardless of alerting, if set to 1.
# export QP_ALERT=60            # alerts if a quiet point takes longer than the value. Default 60 seconds.
# export QP_ALARM=300            # alarm  if a quiet point takes longer than the value. Default 300 seconds.
# export QP_PAGE=600            # page   if a quiet point takes longer than the value. Default 600 seconds.
#
# export AISW_INFO=0            # info provided with every ai switch, regardless of alerting, if set to 1.
# export AISW_ALERT=20            # alerts if an ai switch takes longer than the value. Default 20 seconds.
# export AISW_ALARM=60            # alarm  if an ai switch takes longer than the value. Default 60 seconds.
# export AISW_PAGE=0            # page   if an ai switch takes longer than the value. No default, you MUST set a value to be paged.
#
# export DBSHUTNAG=3600            # Nag interval for db shutdowns and crashes


### dlbin/load.sh
#
# export NUMTBLS=`grep "ADD TABLE" dbname.df | wc -l`        # expected number of tables (optional)
# export JUSTDOIT=yes            # Answer "y" to all prompts in the dump & load scripts
# export DLBINX='&1.&2.&3'        # Template for dlbin directory name (default "friendlyName.dl" or "&1.dl.&2.&3" = "friendlyName.dl.numThreads.dumpIndex")
# export DUMPRO='-RO'            # use -RO connections for dumping rather than having a server running
# export DUMPTHRD='-thread 1'        # optional multi-threaded binary dump options
# export OVERLAP=no            # Do NOT overlap dumping and loading - wait for dump to complete before starting the load process
# export IDXBUILD='inline'        # Use the proutil "build indexes" option table by table rather than one big bang after the load finishes


### bin/zippyng.sh

# Syncronization command to sync zippyng client-server data from a client
# to the server.  This is set within the bin/localenv script.

# FRNAME includes ".cs".

# "SERVER:" must be replaced by the actual target server name.

# If LOGDIR is NOT the same on both source and target then the target server
# LOGDIR will need to be replaced.

# rsync is very efficient but scp or pscp or many other commands could also
# be used. Or you could have a shared filesystem and link the log to the
# logdir and avoid needing to spawn a command to synchronize the data.

# Example:

# export ZIPSYNC="rsync -avzqe ssh ${LOGDIR}/zippyng.${FRNAME}.log SERVER:${LOGDIR} 1>${TMPDIR}/zippyng.${FRNAME}.err 2>&1"
#
# Message Buffer Size (-Mm)
# export ZIPPYMm="-Mm 8192"


### v9 lacks datetime-tz and thus needs a bit of help to get the timezone right

# This is *only* for v9 customers. The lack of datetime-tz makes handling
# "summer time" difficult. There is no reliable, generic, cross platform way
# to get the offset so ProTop uses this variable to determine what offset to
# apply.
#
# for example:
#
# export TZOFFSET="-04:00"        # EDT = "-04:00" (summer)
# export TZOFFSET="-05:00"        # EST = "-05:00" (winter)
#
## TZOFFSET="-05:00"    # CDT (summer)
## TZOFFSET="-06:00"    # CST (winter)
#
# TZSTR=`date +%Z`

# if [ "$TZSTR" = "CDT" ]
# then
#     TZOFFSET="-05:00"
# else
#     TZOFFSET="-06:00"
# fi

# export TZOFFSET


### lib/ttinfo.p demo code
#
# Enable temp-table and user-table-stats for ProTop debugging. The data
# can be viewed with the "Y" (user table stats) and "0" (temp-tables)
# screens.

# 0) temp-table info requires OpenEdge 11 or higher

# 1) You must also uncomment the -tt* parameters in etc/protop.pf
#
# 2) add or uncomment TTDEBUG to bin/localenv:

#       export TTDEBUG=yes
#
# (This is turned off by default.)

# export TTDEBUG=yes