程序是每隔一段时间自动建立数据库连接,操作结束后会释放,但是中途被kill掉的话呢?会立即释放连接吗?或者延迟释放?担心会造成资源泄漏。

解决方案 »

  1.   

    不会立即释放的。
    而且这种连接对象connection的释放一般要自己来调用close方法的java的垃圾收集器只负责那些用new关键字生成
    的对象
      

  2.   

    要手动调用close(),在这个基础上运用事务机制的话,释放不会太延迟!
      

  3.   

    楼上各位,进程被kill掉当然会回收所有的资源。
    这是操作系统完成的,已经不是java的内存回收机制了。
      

  4.   

    中途被kill掉的话呢?
    你用linux的命令行 kill掉? 那当然会释放资源了。进程都没有了,数据库当然认为链接已经终止了,与连接有关的资源会被数据库系统回收再利用。
      

  5.   

    不知道你说的kill掉指把整个程序进程kill了吗?如果是这样为什么还担心连接泄漏?这样应该是会延迟释放的,具体和数据库的机制有关。楼主说的情况似乎不是把整个程序给kill了吧,主程序仍在后台执行任务调度
      

  6.   

    在你的进程被kill掉后,默认的情况下,会释放资源!当然如果你在服务里面进行了设置的话,那么就会按照你的服务的设置是否立即释放资源
      

  7.   

    我也感觉是应该释放,可是总看见oracle的进程中还有好几个连接,可能是延迟了吧。