一张表中大约有2万条数据,我现在是逐条读出这些信息,使用方法是JDBC,问题是我要通过读出的ID,numid,orid分别连接到另一张表,所以一条数据就要再做三个数据库连接,当数据读到1000条时就会报错,超出数据库连接数。错误为ORA-12516,TNS:listener could not find available handler with matching protocol stack错误, 我每次读完一次数据后都关了conn 数据库连接。

解决方案 »

  1.   

    用sysdba登陆进去看看,有多少connect在里面吧!
      

  2.   

    爲什麽一條數據要做三個數據庫鏈接,可以用一條select語句查出來的啊。
      

  3.   

    是RAC吗?每次都会重现这个错误吗?connect有多少?processes session?都是多大?最好是在client和listener做一个trace.然后把listener.ora 和相关trace帖出来.
    可以先看看processes和session的大小.
      

  4.   


    这样不行啊,我要查出 所有主表的信息,而且根据id来查其他三个表的某条信息,可能这个id在另张表中不存在,我就输出null。你能写一条SQL,来解决这个问题吗? 我先在时select * from a ;然后读出id=rs.getString("ID") , 再做一个连接  select popname from pop where id='+id+';我要在页面中显示的是 a中所有信息,和pop中popname信息
      

  5.   


    我刚刚使用orcale 不知道processes和session的大小.怎么看。我用的是10g没有客户端,本来可以用网页登陆,不知道什么原因现在等不上去,但是用PL/SQL能登陆,这样能看见和设置processes和session的大小.吗?怎么设?
      

  6.   

    到server上去看, 用sys登陆. show parameter process
    show parameter session;select count(*) from v$session;
      

  7.   

    用完就关掉连接啊?把connecttion关掉。
      

  8.   


    select a,b,c,d,e,(a中的所有要显示的字段),p.popname from a  join pop p on p.id=a.id