A Cooly Weblog

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

          ??????? 在一個老系統的維護中,遇到經常因為數據庫鏈接沒有關閉,導致鏈接資源過大,造成系統經常掛掉,經分析是因為以前的開發人員在很多頁面中沒有關閉數據庫連接造成的。但現在項目中的頁面文件有上千個,為了檢查出那些使用了數據庫連接并沒有關閉的頁面,我寫了下面的教本來遞規目錄中的頁面文件并分析是否有滿足條件的頁面。

          #!/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


          評論

          # re: 【原創】遞規檢查老系統JSP頁面是否關閉數據庫連接  回復  更多評論   

          2006-09-13 08:53 by zhang147
          看不懂啊寫的是什么
          主站蜘蛛池模板: 双牌县| 云龙县| 平乡县| 昔阳县| 呼伦贝尔市| 灵山县| 西宁市| 德江县| 青田县| 阿巴嘎旗| 武川县| 邵武市| 蓝山县| 阆中市| 瑞丽市| 固安县| 原平市| 泰州市| 河曲县| 芒康县| 广昌县| 阿鲁科尔沁旗| 姜堰市| 湟中县| 宝丰县| 武清区| 凤翔县| 荆门市| 视频| 儋州市| 临猗县| 崇州市| 五原县| 桂东县| 吉木萨尔县| 巴青县| 寻甸| 清水河县| 屏南县| 南陵县| 南京市|