ODBC Problem

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

ODBC Problem

Hans N Beck
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

Reply | Threaded
Open this post in threaded view
|

RE: ODBC Problem

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.

> -----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
>


Reply | Threaded
Open this post in threaded view
|

Re: ODBC Problem

Hans N Beck
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
>>
>
>


Reply | Threaded
Open this post in threaded view
|

RE: ODBC Problem

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
> >>
> >
> >
>
>


Reply | Threaded
Open this post in threaded view
|

Re: ODBC Problem

Hans N Beck
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
>>>>
>>>
>>>
>>
>>
>
>