Project

General

Profile

metacat / src / scripts / bash / measure-metacat-query-performance.sh @ 4810

1
#!/bin/bash
2
#Call a java client class to query metacat automatically and metacat server
3
#will record the performance data into a file. Since we need restart postgres,
4
#this script should be run as root user
5
#Note: before running the script, user should run both "ant jar" and "ant clientjar"
6
#in Metacat to get metaca-client.jar and metacat.jar in build directory. 
7

    
8
#variables
9
JUNIT=/usr/local/devtools/apache-ant/lib/junit-4.3.1.jar
10
METACAT=../build/metacat.jar
11
METACAT_CLIENT=../build/metacat-client.jar
12
UTILITIES=../lib/utilities.jar
13
METACATURL=http://chico.dyndns.org:8081/knb/metacat
14
QUERY=../test/performance_measure_query
15
TIME=2
16
TOMCATUSER=tao
17

    
18
#copy the java client to build directory
19
rm -rf ../build/tests/
20
mkdir ../build/tests
21
mkdir ../build/tests/edu
22
mkdir ../build/tests/edu/ucsb
23
mkdir ../build/tests/edu/ucsb/nceas
24
mkdir ../build/tests/edu/ucsb/nceas/metacattest
25
cp ../test/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java ../build/tests/edu/ucsb/nceas/metacattest/.
26

    
27
#compile the class
28
javac -classpath $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES ../build/tests/edu/ucsb/nceas/metacattest/MetaCatQueryPerformanceTest.java 
29

    
30

    
31

    
32

    
33
#Iterate to restart postgres and tomcat, and call java client class
34
for (( i = 0; i < $TIME; i++))
35
do
36
    #retart postgres
37
    /etc/init.d/postgresql-8.2 restart
38
    #Check if posgres restart successfully
39
    successPQL=false;
40
    while [ $successPQL = false ]
41
    do
42
      #if found netstat command has posgres lisenter is ready,
43
      #reset the success value to jump the while loop.
44
      for fn in `netstat -plt | grep postgres`
45
      do
46
        #reset success value
47
        successPQL=true
48
      done
49
    done
50
    echo "success value for restarting postgres is $successPQL"
51

    
52
    #stop tomcat
53
    su - $TOMCATUSER /usr/local/devtools/apache-tomcat-5.5.23/bin/shutdown.sh
54
     #Check if tomcat start successfully
55
    successStop=false;
56
    tomcatRunning=false
57
    while [ $successStop = false ]
58
    do
59
      #if found netstat command still has tcomat lisenter (port 8005) ,
60
      #reset the tomcatRunning value to true
61
      for fn in `netstat -plt | grep 8005`
62
      do
63
        #reset success value
64
        tomcatRunning=true;
65
      done
66
      if [ $tomcatRunning = true ]
67
         then
68
           successStop=false
69
         else
70
           successStop=true
71
      fi
72
    done
73
    echo "success value for stoping tomcat is $successStop"
74
     
75
    #start tomcat
76
   su - $TOMCATUSER  /usr/local/devtools/apache-tomcat-5.5.23/bin/startup.sh
77
    #Check if tomcat start successfully
78
    successStart=false;
79
    while [ $successStart = false ]
80
    do
81
      #if found netstat command has tcomat lisenter (port 8005) is ready,
82
      #reset the success value to jump the while loop.
83
      for fn in `netstat -plt | grep 8005`
84
      do
85
        #reset success value
86
        successStart=true
87
      done
88
    done
89
    echo "success value for starting tomcat is $successStart"
90

    
91

    
92
    #run the class -- query the remote metacat
93
    java -cp $JUNIT:$METACAT:$METACAT_CLIENT:$UTILITIES:../build/tests edu.ucsb.nceas.metacattest.MetaCatQueryPerformanceTest $METACATURL $QUERY
94
    echo "Successfully query the metacat"
95
done