我必须检查应用程序中的连接泄漏,即打开尚未关闭的连接。
搜索之后,我发现已经打开了数千次连接,但是我无法手动转到每个代码片段并检查连接是否接近。
我认为,使用正则表达式是可能的,但事实是,我不是那么精通正则表达式,我可以写一个。
请建议使用正则表达式检查已打开的连接是否已关闭的java文件。
我的代码模式是这样的。
try {
/*
Some code goes here
*/
con = EJBUtil.getConnection(JNDI_NAME);
/*
Some code goes here
*/
}
finally
{
/*
Some code goes here
*/
DBUtil.close(con);
or
closeConnection.close(con);
/*
Some code goes here
*/
}
答案 0 :(得分:2)
正则表达式不是这里的好工具。只需在您的文件中搜索getConnection
,然后搜索close
以查找相应的变量。
答案 1 :(得分:1)
答案 2 :(得分:0)
你可以编写脚本来计算开启和关闭条款 例如,这一个(perl脚本)输出带有未打开括号的行的文件:
#!/usr/bin/perl -w # brackets.pl: output filenames with unmatched brackets (with hint to linenumber) # example: ./brackets *.c while(<>) { if(!defined($f) or $f ne $ARGV){$f=$ARGV;$l=0} $l++; push @ar,"$f: $l" if(/{/); pop @ar if(/}/) } print"$_\n" for(@ar);
你可以用正则表达式替换括号