Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中何时清除连接对象?_Java_Servlets_Jakarta Ee_Jboss - Fatal编程技术网

在Java中何时清除连接对象?

在Java中何时清除连接对象?,java,servlets,jakarta-ee,jboss,Java,Servlets,Jakarta Ee,Jboss,我需要用java处理400万条记录。需要从AS400复制到Oracle。我正在做的是一批一批地提交记录。批量大小由用户定义。让我们假设它是100 我正在创建一个连接对象,创建一批100条记录并提交它。一旦我完成Committeing 2000,我将通过关闭现有的连接对象来创建一个新的连接对象 因此,现在我有以下疑问 1.一旦我提交批次,我提交的100条记录的数据将在内存中?连接对象?因为我没有关上它 如果在提交100条记录后创建一个新的连接对象会怎么样。所以在本例中,我将创建连接对象,如100多

我需要用java处理400万条记录。需要从AS400复制到Oracle。我正在做的是一批一批地提交记录。批量大小由用户定义。让我们假设它是100

我正在创建一个连接对象,创建一批100条记录并提交它。一旦我完成Committeing 2000,我将通过关闭现有的连接对象来创建一个新的连接对象

因此,现在我有以下疑问

1.一旦我提交批次,我提交的100条记录的数据将在内存中?连接对象?因为我没有关上它

  • 如果在提交100条记录后创建一个新的连接对象会怎么样。所以在本例中,我将创建连接对象,如100多个,并正确关闭它。这会对性能产生影响吗

  • 创建JDBC连接在大多数情况下都很昂贵。因此提出了数据源概念,通常使用连接池来保持连接以供重用

    以下是一些关于这方面的想法:

    该连接不包含属于您执行的语句的查询的任何数据。因此,基本上创建和释放连接不会影响内存。但你的表现是正确的,这是相关的

    这些语句也是可关闭的,因此它们也会在此之后释放资源

    1)是的,一旦提交记录,它们就属于内存。始终在关闭任何连接对象之前提交


    2) 也许吧。您应该记录您的过程,以便测量打开/关闭连接所需的时间。一般来说,这个过程很耗时,但在您的情况下,开盘结束的额外时间可能不会对您的绩效产生重大影响。您应该首先测量并确定最佳解决方案。

    我不知道有什么好的理由关闭仍然需要的连接。事实上,这些连接通常是在独立请求之间汇集和保持的。