Kbase P138517: Insufficient Memory Error in sql_context.cxx when executing complex SQL statement
Autor |
  Progress Software Corporation - Progress |
Acesso |
  Público |
Publicação |
  2/23/2009 |
|
Status: Verified
SYMPTOM(s):
Insufficient Memory Error in sql_context.cxx when executing complex SQL statement
SQL Engine (_SQLSRV2) crashes
Stack trace from _SQLSRV2 reads:
tpe_sqlc_clear
endthreadex
Java exception reads:
java.sql.SQLException: [DataDirect][OpenEdge JDBC Driver][OpenEdge] Insufficient Memory.
Memory allocation failed at 1327 in Z:/vobs_sql/sql/src/rds/sql_context.cxx.
Contact Progress Technical Support
at com.ddtek.jdbc.openedge.client.OpenEdgeClientRequest.fetchProcessReply(Unknown Source)
at com.ddtek.jdbc.openedge.client.OpenEdgeClientRequest.fetch(Unknown Source)
at com.ddtek.jdbc.openedge.OpenEdgeImplResultSet.fetchAtPosition(Unknown Source)
at com.ddtek.jdbc.base.BaseImplResultSet.next(Unknown Source)
at com.ddtek.jdbc.base.BaseResultSet.next(Unknown Source)
at StatementCrashReproducer.testStarStatementGeneric(StatementCrashReproducer.java:127)
at StatementCrashReproducer.scenario1(StatementCrashReproducer.java:40)
at StatementCrashReproducer.main(StatementCrashReproducer.java:256)
FACT(s) (Environment):
SQL-Widths for all character fields are defined as 31995
Java application executing queries via JDBC driver
OpenEdge 10.1C
All Supported Operating Systems
CAUSE:
Bug# OE00175626
FIX:
Upgrade the database server to OpenEdge 10.1C03 or higher
FIX:
Option #1
Reduce the Fetch Array Size of the ODBC DSN to a value lower than the default (50). The Fetch Array Size setting is located on the Advanced tab.
Option #2
Lower the SQL-WIDTH setting of the fields which have very high SQL-WIDTH values (manually if few fields or programmatically if many).
Run DBTOOL against the database, selecting option #2, to automatically reset the SQL-WIDTH to a working value. This will compensate for any fields that do contains more data than the current SQL-WIDTH allows by automatically raising the SQL-WIDTH to a workable value.