各位好,现在做的一个从Excel电子表格将数据组织成一个大的保单对象,然后插入到数据库中的功能。  excel表格是N行40多列格式的数据。多为编号。我在用程序读取电子表格数据后,需要根据读取到的数据,先到数据库中查找到信息,然后组织一个大对象,将查询出来的值赋给这个大对象。最后调用save方法,插入到数据库中。  现在遇到的问题是。数据库最大连接数是300,但是我的程序在读取电子表格数据组织对象的时候,频繁的读取数据库。大约在读取到110条excel数据的时候,就达到了最大连接数的限制。导致抛出异常:Listener refused the connection with the following error:ORA-12519, TNS:no appropriate service handler found  导致程序无法继续。  希望各位有相关经验的朋友能否告知一下对这种问题的解决方案。谢谢各位!

解决方案 »

  1.   

    为什么要创建这么子多的连接对象呢?
    程序代码写的有问题,创建一个连接对象就可以了。
    然后每次都使用同一个连接对象来读写数据库。(即singleton模式)
      

  2.   

    谢谢LuiseRADL的回答。
    因为我是调用核心系统的方法去读取数据库。我跟进了一下源代码,核心代码在每个对象的查询的时候,都是new了一个链接对象,不过,我看他每次查询完毕,也都会关闭链接对象啊。难道说是关闭连接后,数据库那边儿并不能及时释放连接吗?不是太懂这块,还希望不吝赐教啊。谢谢
      

  3.   

    修改最大连接数:
    alter system set processes = 1000 scope = spfile;