A Cooly Weblog

             ::  ::  ::  ::  :: 管理

          ??????? 在一個(gè)老系統(tǒng)的維護(hù)中,遇到經(jīng)常因?yàn)閿?shù)據(jù)庫(kù)鏈接沒有關(guān)閉,導(dǎo)致鏈接資源過大,造成系統(tǒng)經(jīng)常掛掉,經(jīng)分析是因?yàn)橐郧暗拈_發(fā)人員在很多頁(yè)面中沒有關(guān)閉數(shù)據(jù)庫(kù)連接造成的。但現(xiàn)在項(xiàng)目中的頁(yè)面文件有上千個(gè),為了檢查出那些使用了數(shù)據(jù)庫(kù)連接并沒有關(guān)閉的頁(yè)面,我寫了下面的教本來(lái)遞規(guī)目錄中的頁(yè)面文件并分析是否有滿足條件的頁(yè)面。

          #!/bin/sh
          # check database connection state of jsp file

          # check_conn
          # to call: check_conn file
          check_conn(){
          ? if [ $# != 1 ]; then
          ??? echo "Usage:check_conn file"
          ??? return 1
          ? fi
          ? _file=$1
          ? if [ -f "$_file" -a -r "$_file" ]
          ? then
          ???? _sedopen=`sed -n '/conn.jsp/p' $_file`
          ???? _sedclose=`sed -n '/conn.close/p' $_file`
          ???? if [ "$_sedopen" != "" -a "$_sedclose" = "" ]
          ???? then
          ?????? echo $_file
          ?????? return 0
          ???? fi
          ? else
          ??? echo "$_file can not be open"
          ??? return 1
          ? fi
          }


          # recursion file list
          # tocall: ftree path logfile
          ftree(){
          ? if [ $# != 2 ]; then
          ??? echo "Usage:ftree path logfile"
          ??? return 1
          ? fi?
          ? _dir=$1
          ? _log=$2
          ? if [ ! -d "$_dir" -o ! -r "$_dir" ]
          ? then
          ??? echo "$_dir can not be operation."
          ??? return 1
          ? fi
          ? for file in `ls -1 $_dir`
          ? do
          ??? if [ -d "$_dir/$file" ]; then
          ????? (ftree $_dir/$file $_log)
          ??? else
          ????? echo $_dir/$file >> filelist
          ????? (
          ????? if [ `echo $file|awk '{if($1~/^.*.jsp/) print 0}'` ]; then
          ??????? _check="`check_conn $_dir/$file`"
          ??????? if [ "$_check" != "" ]; then
          ????????? echo $_check >> $_log
          ??????? fi
          ????? fi
          ????? )
          ??? fi
          ? done
          ? return 0
          }
          :
          # func progress bar
          # to call: procbar curval,maxval
          procbar(){
          ? curval=$1
          ? maxval=$2
          ? barno=`expr 100 \* $curval / $maxval`
          ? count=0
          ? while [ $count -lt $barno ]
          ? do
          ??? echo -n "|"
          ??? count=`expr $count + 1`
          ??? sleep 1
          ? done?
          }


          # BEGIN
          # procbar 5 30
          FILEPATH=$1
          LOGFILE=$2
          if [ $# != 2 ]; then
          ? echo "Usage:checkfile FILEPATH LOGFILE"
          else
          ? ftree $FILEPATH $LOGFILE
          fi
          # END


          評(píng)論

          # re: 【原創(chuàng)】遞規(guī)檢查老系統(tǒng)JSP頁(yè)面是否關(guān)閉數(shù)據(jù)庫(kù)連接  回復(fù)  更多評(píng)論   

          2006-09-13 08:53 by zhang147
          看不懂啊寫的是什么
          主站蜘蛛池模板: 股票| 东兴市| 新安县| 东源县| 佛坪县| 晴隆县| 西平县| 阿勒泰市| 鹤壁市| 凤山县| 青河县| 滦平县| 阿拉善盟| 宁化县| 启东市| 虎林市| 辽宁省| 牡丹江市| 南开区| 大英县| 衡阳市| 田林县| 神池县| 阿瓦提县| 洱源县| 松阳县| 吴旗县| 浏阳市| 固安县| 禄劝| 濮阳县| 阳原县| 阳西县| 庄浪县| 黑河市| 南昌市| 双流县| 江川县| 陇西县| 观塘区| 临夏县|