在Heroku服务器上调度PostgreSQL存储过程后发生Java内存不足异常
我的Java应用程序部署在Heroku服务器上,它包含一个计划作业(这是PostgreSQL的存储过程) 调度程序成功启动过程执行,并打印日志 但是,一段时间后,java应用程序会导致异常 JAVA.LANG.OUTOFMEMORYERROR JAVA堆空间 并且它在未完成预定作业的情况下停止工作 我应该如何解决此错误 请查找异常屏幕截图在Heroku服务器上调度PostgreSQL存储过程后发生Java内存不足异常,java,postgresql,heroku-postgres,Java,Postgresql,Heroku Postgres,我的Java应用程序部署在Heroku服务器上,它包含一个计划作业(这是PostgreSQL的存储过程) 调度程序成功启动过程执行,并打印日志 但是,一段时间后,java应用程序会导致异常 JAVA.LANG.OUTOFMEMORYERROR JAVA堆空间 并且它在未完成预定作业的情况下停止工作 我应该如何解决此错误 请查找异常屏幕截图 您忘了告诉我们一些小细节,比如您正在运行的SQL语句,但我猜: 您运行了一个包含大量结果集的语句,驱动程序试图将其全部捕获到RAM中 在这种情况下,应该使用P
您忘了告诉我们一些小细节,比如您正在运行的SQL语句,但我猜: 您运行了一个包含大量结果集的语句,驱动程序试图将其全部捕获到RAM中 在这种情况下,应该使用
PreparedStatement
并使用setPrepareThreshold
设置提取大小。然后将使用光标,您可以避免该问题
有关详细信息,请参阅。也解释了这一点,特别是关于关闭自动提交的部分