This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 236966 - OutOfMemoryError: GC overhead limit exceeded
Summary: OutOfMemoryError: GC overhead limit exceeded
Status: RESOLVED WONTFIX
Alias: None
Product: db
Classification: Unclassified
Component: Code (show other bugs)
Version: 7.4
Hardware: All All
: P3 normal (vote)
Assignee: Libor Fischmeistr
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-10-09 20:19 UTC by CadErik
Modified: 2013-11-20 17:32 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter: 204473


Attachments
stacktrace (473 bytes, text/plain)
2013-10-09 20:19 UTC, CadErik
Details

Note You need to log in before you can comment on or make changes to this bug.
Description CadErik 2013-10-09 20:19:24 UTC
Build: NetBeans IDE 7.4 RC2 (Build 201309252201)
VM: Java HotSpot(TM) 64-Bit Server VM, 25.0-b50, Java(TM) SE Runtime Environment, 1.8.0-ea-b108
OS: Windows 8

User Comments:
CadErik: View Data with SQL Server jdbc driver




Stacktrace: 
java.lang.OutOfMemoryError: GC overhead limit exceeded
   at java.util.concurrent.LinkedBlockingQueue.offer(LinkedBlockingQueue.java:416)
   at org.netbeans.core.startup.logging.DispatchingHandler.publish(DispatchingHandler.java:80)
   at java.util.logging.Logger.log(Logger.java:652)
   at java.util.logging.Logger.doLog(Logger.java:673)
   at java.util.logging.Logger.log(Logger.java:783)
   at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:2053)
Comment 1 CadErik 2013-10-09 20:19:26 UTC
Created attachment 140965 [details]
stacktrace
Comment 2 Jaroslav Tulach 2013-11-18 14:07:33 UTC
Moving to perf category. Does not seem to be RequestProcessor neither module system related.
Comment 3 Tomas Hurka 2013-11-20 09:49:49 UTC
Around 550M is taken by com.microsoft.sqlserver.jdbc.TDSReader#2 instance, while executing following SQL command:

select * from dbo.CanData
Comment 4 CadErik 2013-11-20 14:41:08 UTC
Ha! great find, I am not surprised. The SQL server JDBC driver seems determined to cache results and haven't found a way to disable that. 
If I find the parameters to disable that behavior, I'll post them here. It would be nice if they were defaults for SQL Server.
Comment 5 matthias42 2013-11-20 17:32:59 UTC
(In reply to CadErik from comment #4)
> Ha! great find, I am not surprised. The SQL server JDBC driver seems
> determined to cache results and haven't found a way to disable that.

This is a common scheme - the mysql driver works the same way.
 
> If I find the parameters to disable that behavior, I'll post them here. It
> would be nice if they were defaults for SQL Server.

Maybe this helps:

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


selectMethod
	

String

["direct"|"cursor"]
	

direct
	

If this property is set to "cursor," a database cursor is created for each query created on the connection for TYPE_FORWARD_ONLY and CONCUR_READ_ONLY cursors. This property is typically required only if the application generates very large result sets that cannot be fully contained in client memory. When this property is set to "cursor," only a limited number of result set rows are retained in client memory. The default behavior is that all result set rows are retained in client memory. This behavior provides the fastest performance when the application is processing all rows.