Consultor Eletrônico



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.