I've seen this as well under DCOracle. -jon Dyon Balding <dyon@devcoder.com.au> writes:
OK, I've had more of a hack at this, and I've narrowed the problem down a little.
It appears that any access to an SQLAlias object causes it to not be correctly released. The SQLAlias objects means that you can access column names using a different case to how they are stored in the database.
For example, we store users in a users table in the database, with column names like USERNAME, but they are accessed with: <dtml-var username>, this causes the SQLAlias objects to stick around.
One solution to our problem is to just do a <dtml-var USERNAME> instead. However that doesn't solve the problem with this "feature" of being able to call it with a different case.
This is a fairly easy bug to reproduce, on my setup at least :). I have tested it with ZSQLRelay and ZODBDA both talking to SQLServer, and with ZPyGreSQLDA talking to PostgreSQL.
I would appreciate it if someone else can reproduce the bug, and I'll put it in the Collector I guess.
thanks -d
On Wed, Dec 06, 2000 at 09:06:47AM +1100, Dyon Balding wrote:
Hi,
I have an application that stores state data in a SQLServer database. The Zope and database servers run on different windows machines, using the ZODBCDA product to connect Zope to the ODBC machinery.
What I have been observing is that the Zope client's memory usage increases consistently when ZSQL methods are being called. In the Debug screens, the culprit appears to be Shared.DC.ZRDB.RDB.SQLAlias.
Here's a dump of the first few lines after hitting a ZSQL method a few hundred times using ab. The SQLAlias figures never seem to go down.
Class December 5, 2000 1:58 pm December 5, 2000 2:01 pm Delta Shared.DC.ZRDB.RDB.SQLAlias 1048 4068 +3020 ZClasses.ZClass.ZClass 73 108 +35 OFS.DTMLMethod.DTMLMethod 63 94 +31
In fact most of our servers run out of memory and need to be restarted every couple of days when they get sufficient use.
I've done a bit of a search of the mailing lists, and noone else appears to be having the same problem. So does anyone have an idea of what we might be doing differently to everyone else? We appear to have the latest versions installed.
I've had a bit of a look through the code, and it appears that SQLAlias is used to case desensitize the column names of the returned data?
Any pointers would be appreciated.
thanks, d
-- | Dyon Balding dyon@devcoder.com.au |
_______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )
-- Dyon Balding <dyon@devcoder.com.au>
_______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://lists.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope )