java调用SQLServer存储过程时提示out of memory

sufsoft 2013-08-11 04:37:32
环境:java6+SQLServer2005
存储过程中主要是从不同的表中拿取数据,然后根据相应的逻辑,把符合条件的数据insert到另一个新表中去,存储过程会返回一个参数(就是一个状态而已,来表示执行存贮过程是否成功而已)。然后在java中用CallableStatement调用存贮过程,但是执行时报错:
[ERROR] com.microsoft.sqlserver.jdbc.SQLServerException: The system is out of memory. Use server side cursors for large result sets:Java heap space. Result set size:158,674,393. JVM total memory size:518,979,584
第一次遇到这个问题,请教各位了,谢谢!!
...全文
185 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sufsoft 2013-08-15
  • 打赏
  • 举报
回复
对的,确实是因为sun glassfish服务器的内存不足引起的。办法如4楼所说!
發糞塗牆 2013-08-12
  • 打赏
  • 举报
回复
这种情况一般是应用程序所在的服务器内存不足,并不是sqlserver所在的服务器内存不足
KeepSayingNo 2013-08-12
  • 打赏
  • 举报
回复
在tomcat中修改catalina.bat文件加上: set JAVA_OPTS=-Xms64m -Xmx1024m 默认都是512,我看你那容量明显超过了512,可修改为1024,还不够的话,修改为2056,但是这个时候一定要看你所在机器的物理内存是多少,不要超过
Shawn 2013-08-11
  • 打赏
  • 举报
回复
大概是说:SQL SERVER端打开了大容量的游标,导致内存不够用。 把你的游标改成:DECLARE cursor_name CURSOR STATIC LOCAL FORWARD_ONLY READ_ONLY 试试
sufsoft 2013-08-11
  • 打赏
  • 举报
回复
引用 1 楼 hdhai9451 的回复:
[ERROR] com.microsoft.sqlserver.jdbc.SQLServerException: The system is out of memory. Use server side cursors for large result sets:Java heap space. Result set size:158,674,393. JVM total memory size:518,979,584 意思很明白,内存不够.这个应该是配置的问题,而不是sql server有错误.
我系统有很多在用的存储过程,有些比这个还复杂,但都没问题,为什么执行这个的时候就出问题了呢?也就是说这个问题是偶然出现的,之前都没有,所以不应该是电脑配置的问题吧!顺便说一下,我好几天没关过电脑了,这个会有影响吗??
Andy__Huang 2013-08-11
  • 打赏
  • 举报
回复
[ERROR] com.microsoft.sqlserver.jdbc.SQLServerException: The system is out of memory. Use server side cursors for large result sets:Java heap space. Result set size:158,674,393. JVM total memory size:518,979,584 意思很明白,内存不够.这个应该是配置的问题,而不是sql server有错误.

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧