在Heroku服务器上调度PostgreSQL存储过程后发生Java内存不足异常

问题描述 投票:-1回答:1

我的Java应用程序部署在Heroku Server上,它包含一个预定作业(PostgreSQL的存储过程)。

调度程序成功启动过程执行并且还打印日志。

但是,经过一段时间后,java应用程序会导致异常

JAVA.LANG.OUTOFMEMORYERROR java堆空间

它会在没有完成预定作业的情况下停止工作。

我该怎么做才能解决这个错误?

请查找例外截图

java postgresql heroku-postgres
1个回答
0
投票

你忘了告诉我们你正在运行的SQL语句之类的细节,但这是我的猜测:

你运行了一个带有大结果集的语句,并且驱动程序试图将它全部存入RAM。

在这种情况下,您应该使用PreparedStatement并使用setPrepareThreshold来设置提取大小。然后将使用光标,您可以避免此问题。

有关详细信息,请参阅the documentation

© www.soinside.com 2019 - 2024. All rights reserved.