odbc, dbi modules memory leak???
M.-A. Lemburg
mal at lemburg.com
Sat May 26 11:59:05 EDT 2001
Victor Muslin wrote:
>
> 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.
As I already wrote you in private mail, this is not due to Python
having a leak, but due to the poor implementation of the Oracle
ODBC you are using.
Please try the MS one for Oracle...
> 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)
>
> --
> http://mail.python.org/mailman/listinfo/python-list
--
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Company & Consulting: http://www.egenix.com/
Python Software: http://www.lemburg.com/python/
More information about the Python-list
mailing list