+ -
当前位置:首页 → 问答吧 → pro*c中多线程连接时怎么释放sql_context?

pro*c中多线程连接时怎么释放sql_context?

时间:2010-08-17

来源:互联网

本帖最后由 setsuna 于 2010-08-17 19:49 编辑

版本是10.1.0.2.0,问题具体如下:
在某线程的执行函数中循环连接并操作数据库。运行还算正常,但是内存在不停增长。代码如下:
  1.         struct sqlca sqlca;
  2.         EXEC SQL BEGIN DECLARE SECTION;
  3.         sql_context context;
  4.         EXEC SQL END DECLARE SECTION;

  5.         for(;;)
  6.         {       
  7.                 EXEC SQL ENABLE THREADS;
  8.                 EXEC SQL CONTEXT ALLOCATE :context;
  9.                 EXEC SQL CONTEXT USE :context;
  10.                 EXEC SQL CONNECT :conn_str;
  11.                
  12.                 EXEC SQL CONTEXT USE :context;
  13.                 if (sqlca.sqlcode < 0)
  14.                 {
  15.                         EXEC SQL CONTEXT free :context;       
  16.                         sleep(1);
  17.                         continue;
  18.                 }
  19.                 run(context);
  20.                 EXEC SQL COMMIT WORK RELEASE;
  21.                 EXEC SQL CONTEXT free :context;
  22.                 sleep(1);
  23.         }
复制代码
请问该怎么解决这个问题?非常感谢!

作者: setsuna   发布时间: 2010-08-17

有搞pro*c的朋友传点资料吧。

作者: renxiao2003   发布时间: 2010-08-17