Weblogic OutOfMemoryError当查询返回大结果MS SQL Server时

时间:2014-12-18 21:42:54

标签: java sql-server jdbc weblogic-10.x

我尝试使用返回许多记录的查询在jsf页面中呈现记录列表,我使用Microsoft的weblogic 10.3.0.0和sql server驱动程序4连接sql server数据库,当我运行这个jsf页面时,这会消耗大量内存,因为查询返回了许多记录,因此发生了OutOfMemoryError。我已经看到使用setFetchSize可以限制结果,但是在这里:

What does Statement.setFetchSize(nSize) method really do in SQL Server JDBC driver?

微软的sql server驱动程序不限制这个,我使用jDTS驱动程序,如上面的帖子所建议,但同样的问题ocurre,我也试过用这个:

http://msdn.microsoft.com/en-us/library/bb879937.aspx

使用驱动程序进行自适应缓冲,但我的驱动程序版本是4,所以默认情况下这有自适应缓冲,但显然不是,我试过这个:

 statement = connectionDB.createStatement();
 SQLServerStatement SQLstmt = (SQLServerStatement) statement;
 SQLstmt.setResponseBuffering("adaptive");

但这没有返回结果,我也把它放在连接属性中,但问题仍然存在,我明白问题是查询有很大的结果而且驱动程序没有用块执行它,因此记忆力在下降,我相信这就是问题所在。我不知道使用哪种解决方法,如果使用查询手动分页,如果使用其他驱动程序等,请帮我找一个解决方法,无论收到什么信息,对不起我的英语不好

0 个答案:

没有答案