程序描述如下:
1 在父进程中创建了一个DB连接,
2 把父进程的连接传给子进程(fork())使用,子进程执行select * from 查询(preparestatement 游标),然后取得查询后的结果集(resultset 结果集),
3 子进程 free或delete掉游标和结果集(preparestatment和resultset),并exit(0);
4 父进程的DB连接不释放,不重新连接,继续给另一个子进程使用(子进程的动作一致),遇到问题描述:
在子进程结束后(exit(0)),游标却释放不掉,一直在数据库中(select * from v$session)请各位帮忙解决一下。多谢!
1 在父进程中创建了一个DB连接,
2 把父进程的连接传给子进程(fork())使用,子进程执行select * from 查询(preparestatement 游标),然后取得查询后的结果集(resultset 结果集),
3 子进程 free或delete掉游标和结果集(preparestatment和resultset),并exit(0);
4 父进程的DB连接不释放,不重新连接,继续给另一个子进程使用(子进程的动作一致),遇到问题描述:
在子进程结束后(exit(0)),游标却释放不掉,一直在数据库中(select * from v$session)请各位帮忙解决一下。多谢!
{
connection *p = new oracleconnection(); while(1)
{
if(fork()==0)//子进程
{
preparestatment *pstat = null;
resultset *pret = NULL;
try{
pret = pstat = p->preparesql("select * from ,,,");
//设置了标志位,当p未被使用时,才执行
}
catch(){....}
pstat->close();
pret->close(); exit(0);//子进程结束
}//if(fork()...
}//while
}//函数结束所遇到的问题是,子进程中游标一直无法关闭,select count(*) from v$open_cursor where sql_text like '%select 查询语句%';一直在增加。
过一段时间,程序报1000错误(打开的最大游标数,,,,)请高手帮忙解决。