Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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 数据库连接重置是因为Oracle数据库中的参数?_Java_Oracle_Exception_Database Connection - Fatal编程技术网

Java 数据库连接重置是因为Oracle数据库中的参数?

Java 数据库连接重置是因为Oracle数据库中的参数?,java,oracle,exception,database-connection,Java,Oracle,Exception,Database Connection,我在oracle DB工作,在Java方面没有太多经验。我试图了解一个重复出现的异常以及如何避免它 有一个每月一次的作业,它调用java程序,该java程序与Oracle DB交互。每个月,该程序都会因对等端的异常连接重置而中断。关于Java程序,我所知道的只是它有20个线程,它点击DB来获取/插入数据 我将数据从prod复制到测试环境,并运行相同的过程。没有问题 Prod和Dev中的配置是否可能不同 我检查了两种环境中的空闲时间和连接时间,它们被设置为无限制 我检查了open_游标限制,它们在

我在oracle DB工作,在Java方面没有太多经验。我试图了解一个重复出现的异常以及如何避免它

有一个每月一次的作业,它调用java程序,该java程序与Oracle DB交互。每个月,该程序都会因对等端的异常连接重置而中断。关于Java程序,我所知道的只是它有20个线程,它点击DB来获取/插入数据

我将数据从prod复制到测试环境,并运行相同的过程。没有问题

Prod和Dev中的配置是否可能不同

我检查了两种环境中的空闲时间和连接时间,它们被设置为无限制 我检查了open_游标限制,它们在prod和testenv中是相同的

在较低的环境中,我将open_游标从10k减少到5k,然后得到了最大open_游标异常。 我发现与数据库的连接很少没有正确关闭。我们在代码中修复了这个问题,并在测试环境中成功运行了它,open_游标为5K

我想知道

我是否应该检查使其在测试环境中运行的配置/参数? 放弃连接会导致对等异常重置连接吗? testenv使用最少,prod DB被许多作业使用。这有区别吗?
当应用程序建立了数据库连接,但没有任何事务发生活动时,就会发生这种情况。 因为您的db操作间隔是每月一次。 如果您使用的是c3p0连接池,它具有在后台运行测试查询的功能。这将从池中删除放弃的db连接


如果您正在使用其他连接池,那么它将具有此类功能。或者对于hack,您可以编写一个轮询线程,在MySQL的情况下,该线程将在配置的时间间隔9小时内执行随机db操作。因此,数据库连接将始终处于活动状态。

谢谢您的回复。因此,从你的帖子中,我了解到更多的是空闲时间——它是否取决于DB配置?因为我在其他方面没有看到这个例外environments@Valli连接时间在db和db配置级别都可用。两者应根据空闲情况时间间隔同步。