#!/bin/sh ############################## #Author: Eddie O'Sullivan (eos@qad.com) # #SUMMARY: Script to process an application server memory dump #VESRION: 1.0 # #USEAGE: # # $0 # is the memory dump log file # #OUTPUT: # .summary = HIGH LEVEL SUMMARY COUNTS # .persistentSummary = COUNT OF EACH TYPE OF PERSISTENT PROCS # .datasetSummary = COUNT OF EACH TYPE OF DATASET # .bufferSummary = COUNT OF EACH TYPE OF BUFFER # .tempTableSummary = COUNT OF EACH TYPE OF TEMP TABLE INCLUDING # Name, Number Occurances, Number of Records, Total Length in kb # ############################## if [ "$#" -lt 1 ] then echo "*******ERROR In Usage************" echo "Usage: $0 " echo " is the memory dump log file" exit 1 fi #Store the input file name filename=$1 #Make sure the input file exists if [ ! -f "$filename" ]; then echo "File $filename does not exist" exit 2 fi summaryFileName=$1.summary persistentProcFile=$1.persistentSummary datasetSummaryFile=$1.datasetSummary bufferSummaryFile=$1.bufferSummary tempTableSummaryFile=$1.tempTableSummary ############----PROCESS SUMMARY----############ more $filename | awk '{if($1=="35")print $0;}' | sed 's/"//g' | awk '($1="")1' > $summaryFileName ############----PROCESS DATASETS----############ more $filename | grep "65 \"Dataset" | sed 's/"//g' | awk '{numDatasets[$4]++;}END{for (i in numDatasets){print i, numDatasets[i];}}' | sort -k2 -n -r > $datasetSummaryFile ############----PROCESS BUFFERS----############ more $filename | grep "65 \"Buffer" | sed 's/"//g' | sed 's/,//g' | awk '{numBuffers[$3]++;}END{for (i in numBuffers){print i, numBuffers[i];}}' | sort -k2 -n -r > $bufferSummaryFile ############----PROCESS TEMP TABLES----############ echo "Table NumOccurances NumRecords Length" > $tempTableSummaryFile more $filename | sed 's/"//g' | sed 's/!//g' | sed 's/://g' | awk '{if($4=="records" || $4=="records,")print $0;}' | awk '{tempTable[$2]++;;tempTableRecords[$2]+=$3;if($1=="15"){split($5,len,"=");tempTableLen[$2]+=len[2];}else{tempTableLen[$2]+=0;}}END{for (i in tempTable){print i , tempTable[i] , tempTableRecords[i] , tempTableLen[i];}}' | sort -k2 -n -r >> $tempTableSummaryFile ############----PROCESS PERSISTENT PROCEDURES----############ more $filename | grep "65 \"PERSISTENT" | awk '{if($2 == "\"PERSISTENT"){numInstances[$4]++;}}END{for (i in numInstances) {print i, numInstances[i];}}' | sort -k2 -n -r > $persistentProcFile echo "----------------------------------------------------" echo "------File: $summaryFileName Created----" echo "------File: $datasetSummaryFile Created----" echo "------File: $bufferSummaryFile Created----" echo "------File: $tempTableSummaryFile Created----" echo "------File: $persistentProcFile Created----" echo "----------------------------------------------------" exit 0