Skip to main content

EBS 12.2 - Script to monitor JVM Heap Memory for the weblogic managed servers

#!/bin/sh
# Script to monitor JVM Heap Memory for the managed servers
# Author : Ramasubbu Sunadaravel
# Date   : 23-Aug-2016
# Usage  : sh jvm_heap_mem_mon.sh run 

## VARIABLES
save_date=`date +%d_%b_%y`
LOGFILE=/export/home/applmgr/oraprocs/logs
HISTFILE=/export/home/applmgr/oraprocs/histfile
threshold=10
MAIL_LIST=rsundaravel@yahoo.com
SCRIPT=/export/home/applmgr/oraprocs/.jvm_check.py

## SCRIPTS STARTS HERE
. /r11/app/FLRPRD/R12apps/EBSapps.env
. $FMW_HOME/wlserver_10.3/server/bin/setWLSEnv.sh
java weblogic.WLST $SCRIPT > $LOGFILE/jvm_heap_monitoring.log
date '+Start Time: %m/%d/%y %H:%M:%S' >> $HISTFILE/jvm_heap_monitoring_$save_date.log
cat $LOGFILE/jvm_heap_monitoring.log|grep "%" >> $HISTFILE/jvm_heap_monitoring_$save_date.log
date '+End Time: %m/%d/%y %H:%M:%S' >> $HISTFILE/jvm_heap_monitoring_$save_date.log

#Alert DBA's if any of the managed server heap size reached more than $threshold value
current=`cat $LOGFILE/jvm_heap_monitoring.log|grep %|awk '{print $8}'|cut -f1 -d'%'|sort -n |head -1`

if test $current -lt $threshold
then
echo "one of the managed server heap size free % reached less than $threshold% . Please check logfile $LOGFILE/jvm_heap_monitoring.log from `hostname`" |mailx -s "Managed server heap size free % reached less
 than $threshold%  in `hostname` " $MAIL_LIST < $LOGFILE/jvm_heap_monitoring.log
else
echo "All is well"
fi
## END 

### Weblogic script to find out JVM Memory usage.

cat /export/home/applmgr/oraprocs/.jvm_check.py 
connect('weblogic','password','t3://test.testing.int:7014')
domainRuntime()

servers = domainRuntimeService.getServerRuntimes();
print('################################################################')
print('# Java heap information per server')
print('################################################################')
print('%20s %10s %8s %8s %4s' % ('Server','Current','Free','Max','Free'))
for server in servers:
   free    = int(server.getJVMRuntime().getHeapFreeCurrent())/(1024*1024)
   freePct = int(server.getJVMRuntime().getHeapFreePercent())
   current = int(server.getJVMRuntime().getHeapSizeCurrent())/(1024*1024)
   max     = int(server.getJVMRuntime().getHeapSizeMax())/(1024*1024)
   print('%20s %7d MB %5d MB %5d MB %3d%%' % (server.getName(),current,free,max,freePct))

disconnect()
exit()

Comments

Popular posts from this blog

ORA-20200 Error while running AWR report from PDB level

Issue: In 19c database, while generating AWR report from PDB level, got the below error.  In 12cR1 - We can only generate statistics and run the Workload Repository (AWR) report from CDB level.  Since 12.2, if we want to generate statistics and run AWR report from PDB level, we have to change  awr_pdb_autoflush_enabled parameter to TRUE. Error: ERROR at line 1: ORA-20200: Database/Instance 2832289441/1 does not exist in AWR_PDB_DATABASE_INSTANCE ORA-06512: at line 27 Solution: alter session set container=ORCL; >>>>   Set the container Name alter system set awr_pdb_autoflush_enabled=true; conn system/<pwd>@orclcdb     >>>> Login into PDB database alter system set AWR_SNAPSHOT_TIME_OFFSET=1000000 scope=both;   >>> Set the arameter to avoid performance issue while generating snapshot at the same time in CDB and PDB level. exec dbms_workload_repository.create_snapshot(); SQL> @?/rdbms/admin/awrrpt.sql Console Log: SQL> show pdbs       CON_ID CON

EBS 12.2 - Script to monitor Weblogic Managed servers

#!/bin/sh # Script to monitor Weblogic managed server status # Author : Ramasubbu Sunadaravel # Date   : 23-Aug-2016 . /r11/app/FLRPRD/R12apps/EBSapps.env ## VARIABLES ### LOGFILE=/export/home/applmgr/oraprocs/logs MAIL_LIST=rsundaravel@yahoo.com ADMIN_URL=http://test.domain.int:7014/console PARFILE=/export/home/applmgr/oraprocs/mgd_server_list.par ## - place all the managed servers name. WEBLOGIC_PWD = /export/home/applmgr/oraprocs/.weblogicpwd ## SCRIPT STARTS cat $PARFILE |while read line do managed_server=`echo $line | awk '{print $1}'` LOGFILE=/export/home/applmgr/oraprocs/logs echo $managed_server echo `cat $WEBLOGIC_PWD`|$ADMIN_SCRIPTS_HOME/admanagedsrvctl.sh status $managed_server|grep $managed_server|grep -v logs > $LOGFILE/$managed_server.log status=`cat $LOGFILE/$managed_server.log|grep "is running"|wc -l` if test $status -eq 1 then echo "$managed_server is Running" else echo "$managed