Hi,
we'are talking about Squeak 3.8 running at Windows XP and ODBC Package from squeak map, loaded today: I've done several connections to a ODBC source. Connection works great but I could not remove the old objects (I use it with seaside). ODBCConnection Class>>clearAll doesn't work, something prevent the old ODBCConnection instances to be garbaged collected. (making ODBCConnections allInstances shows that all connections are closed, but "open transaction" ???) Have someone a hint 8-) ? Regards Hans |
Try doing a "chase pointers" (from the popup menu) after inspecting an
instance of ODBCConnection. Should give you some idea of where the instance is being referenced. Also common is referencing an object in a workspace. Set the reference to nil or close the workspace. > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]]On Behalf Of Hans > N Beck > Sent: 17 May 2006 7:43 PM > To: The general-purpose Squeak developers list > Subject: ODBC Problem > > > Hi, > > we'are talking about Squeak 3.8 running at Windows XP and ODBC > Package from squeak map, loaded today: > > I've done several connections to a ODBC source. Connection works > great but I could not remove the old objects (I use it with seaside). > ODBCConnection Class>>clearAll doesn't work, something prevent the > old ODBCConnection instances to be garbaged collected. > > (making ODBCConnections allInstances shows that all connections are > closed, but "open transaction" ???) > > Have someone a hint 8-) ? > > Regards > > Hans > |
Hi Gary,
Am 17.05.2006 um 21:40 schrieb Gary Chambers: > Try doing a "chase pointers" (from the popup menu) after inspecting an > instance of ODBCConnection. Should give you some idea of where the > instance > is being referenced. > > Also common is referencing an object in a workspace. Set the > reference to > nil or close the workspace. Yes, this I have tried already but doesn't help. But the other hint is a good idea, I will try it. What does me wonder is the "open transaction" property. Could this be hint to the problem ? What I've done is make a ODBC connection via DSN, make a "select" query and close the connection. After repeating this several times, I do ODBCConnection (Class) >> clearAll, which reports that all instances are yet alife. Must I do something with commitTransactions ? Thanks ! Hans > >> -----Original Message----- >> From: [hidden email] >> [mailto:[hidden email]]On Behalf Of >> Hans >> N Beck >> Sent: 17 May 2006 7:43 PM >> To: The general-purpose Squeak developers list >> Subject: ODBC Problem >> >> >> Hi, >> >> we'are talking about Squeak 3.8 running at Windows XP and ODBC >> Package from squeak map, loaded today: >> >> I've done several connections to a ODBC source. Connection works >> great but I could not remove the old objects (I use it with seaside). >> ODBCConnection Class>>clearAll doesn't work, something prevent the >> old ODBCConnection instances to be garbaged collected. >> >> (making ODBCConnections allInstances shows that all connections are >> closed, but "open transaction" ???) >> >> Have someone a hint 8-) ? >> >> Regards >> >> Hans >> > > |
The connections (and statements etc) are held by a weak registry. If
anything strongly references them they will stay "alive". Try doing a few runs of 'Smalltalk garbageCollect' before looking for instances. Usually chase pointers will find your problem (not always!). Working on ODBC and Glorp stuff at the moment, so been through a bit of this! > -----Original Message----- > From: [hidden email] > [mailto:[hidden email]]On Behalf Of Hans > N Beck > Sent: 17 May 2006 8:50 PM > To: The general-purpose Squeak developers list > Subject: Re: ODBC Problem > > > Hi Gary, > > Am 17.05.2006 um 21:40 schrieb Gary Chambers: > > > Try doing a "chase pointers" (from the popup menu) after inspecting an > > instance of ODBCConnection. Should give you some idea of where the > > instance > > is being referenced. > > > > Also common is referencing an object in a workspace. Set the > > reference to > > nil or close the workspace. > > Yes, this I have tried already but doesn't help. But the other hint > is a good idea, I will try it. > What does me wonder is the "open transaction" property. Could this be > hint to the problem ? > > What I've done is make a ODBC connection via DSN, make a "select" > query and close the connection. After repeating this several times, I > do ODBCConnection (Class) >> clearAll, which reports that all > instances are yet alife. Must I do something with commitTransactions ? > > Thanks ! > > Hans > > > > >> -----Original Message----- > >> From: [hidden email] > >> [mailto:[hidden email]]On Behalf Of > >> Hans > >> N Beck > >> Sent: 17 May 2006 7:43 PM > >> To: The general-purpose Squeak developers list > >> Subject: ODBC Problem > >> > >> > >> Hi, > >> > >> we'are talking about Squeak 3.8 running at Windows XP and ODBC > >> Package from squeak map, loaded today: > >> > >> I've done several connections to a ODBC source. Connection works > >> great but I could not remove the old objects (I use it with seaside). > >> ODBCConnection Class>>clearAll doesn't work, something prevent the > >> old ODBCConnection instances to be garbaged collected. > >> > >> (making ODBCConnections allInstances shows that all connections are > >> closed, but "open transaction" ???) > >> > >> Have someone a hint 8-) ? > >> > >> Regards > >> > >> Hans > >> > > > > > > |
Hi,
now I've found the problem: the Seaside session has catched the instances ..... Regards Hans Am 17.05.2006 um 21:55 schrieb Gary Chambers: > The connections (and statements etc) are held by a weak registry. If > anything strongly references them they will stay "alive". Try doing > a few > runs of 'Smalltalk garbageCollect' before looking for instances. > > Usually chase pointers will find your problem (not always!). > > Working on ODBC and Glorp stuff at the moment, so been through a > bit of > this! > >> -----Original Message----- >> From: [hidden email] >> [mailto:[hidden email]]On Behalf Of >> Hans >> N Beck >> Sent: 17 May 2006 8:50 PM >> To: The general-purpose Squeak developers list >> Subject: Re: ODBC Problem >> >> >> Hi Gary, >> >> Am 17.05.2006 um 21:40 schrieb Gary Chambers: >> >>> Try doing a "chase pointers" (from the popup menu) after >>> inspecting an >>> instance of ODBCConnection. Should give you some idea of where the >>> instance >>> is being referenced. >>> >>> Also common is referencing an object in a workspace. Set the >>> reference to >>> nil or close the workspace. >> >> Yes, this I have tried already but doesn't help. But the other hint >> is a good idea, I will try it. >> What does me wonder is the "open transaction" property. Could this be >> hint to the problem ? >> >> What I've done is make a ODBC connection via DSN, make a "select" >> query and close the connection. After repeating this several times, I >> do ODBCConnection (Class) >> clearAll, which reports that all >> instances are yet alife. Must I do something with >> commitTransactions ? >> >> Thanks ! >> >> Hans >> >>> >>>> -----Original Message----- >>>> From: [hidden email] >>>> [mailto:[hidden email]]On Behalf Of >>>> Hans >>>> N Beck >>>> Sent: 17 May 2006 7:43 PM >>>> To: The general-purpose Squeak developers list >>>> Subject: ODBC Problem >>>> >>>> >>>> Hi, >>>> >>>> we'are talking about Squeak 3.8 running at Windows XP and ODBC >>>> Package from squeak map, loaded today: >>>> >>>> I've done several connections to a ODBC source. Connection works >>>> great but I could not remove the old objects (I use it with >>>> seaside). >>>> ODBCConnection Class>>clearAll doesn't work, something prevent the >>>> old ODBCConnection instances to be garbaged collected. >>>> >>>> (making ODBCConnections allInstances shows that all connections are >>>> closed, but "open transaction" ???) >>>> >>>> Have someone a hint 8-) ? >>>> >>>> Regards >>>> >>>> Hans >>>> >>> >>> >> >> > > |
Free forum by Nabble | Edit this page |