odbc, dbi modules memory leak???
Victor Muslin
victor at prodigy.net
Thu May 24 13:52:59 EDT 2001
The program below leaks memory:
The offender seems to be the statement:
cur = dbconn.cursor()
If this statement is moved outside the loop so that the same cursor is
re-used, memory leak stops. Why is the cursor not garbage collected
properly?? Is there some trick I need to know? Help would be greatly
appreciated.
I know that explicit deletes should not be necessary, just tried them
in desperation :-(
I am using ActiveState Python 2.1 build 210 on Windows 2000. I
observed the same behavior with BeOpen Python 2.0.
TIA
--------------------------------------------------------
import dbi,odbc
sql = "SELECT application_instance, parameter_name,"\
" parameter_value"\
" FROM config_parameters"\
" WHERE ((application_type = '%s' AND "\
" (application_instance IS NULL OR"\
" application_instance = '%s'))"\
" AND (parameter_name LIKE '%s'))" % ('ADSERVER', 'ADSERVER_1',
'%')
cs = 'dbsource_acf/vmuslin/dclk123'
dbconn = odbc.odbc(cs)
for i in range(2000):
cur = dbconn.cursor() # <--- offending statement
cur.execute(sql)
resultset = cur.fetchall()
del(cur)
del(resultset)
More information about the Python-list
mailing list