下面是程序执行时打印的错误信息,看了下在过程的52行刚好是commit ;为什么commit时会报ORA-00018: 超出最大会话数错误,这个错误不是只有connect的时候才会报的吗?
INFO20100918091321::ORA-00018: 超出最大会话数
ORA-06512: 在"UNITELE.BI_GET_SERIAL_NO_P", line 52
ORA-06512: 在line 1

解决方案 »

  1.   

    可能有其他用户在操作,导致你数据库的session数很多,超过了设置的session数
    修改init.ora中最大SESSIONS数就可以了
      

  2.   

    我不想修改这个最大会话数,只是一般报ORA-00018: 超出最大会话数不都是创建新的会话是吗?为什么commit也会报这个错误?难道commit的时候会创建新的会话吗?还有如果commit报错了,数据库是不是自动回滚了?
      

  3.   

    单纯的commit不会创建新的会话,除非你在commit之前有很多connection没有关闭,就像Java里的statement、connection没有关闭一样,它要占用你的session和资源,程序设计时,必须考虑这些资源的及时关闭!