From: Rick on
I have a DLL a client of mine uses. We are finding that since upgrading to
Windows 2003 we are having CF crashes twice a day and the crashes trace back to
a COM object that is used about 400 to 500 times a day. THe error we are
getting is Unable to open native thread.

What we have discovered is that in CF (in this case CF7) we are unable to set
the instantiated object to Nothing as we would do in ASP or ASP.net when
finished using that object. As a result, even though CF kills the connection
to that object the thread stays active and Garbarge collection doesn't clear it
out. We eventually have so many active threads that CF Application Service
crashes.

There has got to be some way to close the com object and the thread it created
when the object was instantiated.

HELP!!!

From: GArlington on
On Apr 9, 4:28 pm, "Rick" <webforumsu...(a)macromedia.com> wrote:
> I have a DLL a client of mine uses. We are finding that since upgrading to
> Windows 2003 we are having CF crashes twice a day and the crashes trace back to
> a COM object that is used about 400 to 500 times a day. THe error we are
> getting is Unable to open native thread.
>
> What we have discovered is that in CF (in this case CF7) we are unable to set
> the instantiated object to Nothing as we would do in ASP or ASP.net when
> finished using that object. As a result, even though CF kills the connection
> to that object the thread stays active and Garbarge collection doesn't clear it
> out. We eventually have so many active threads that CF Application Service
> crashes.
>
> There has got to be some way to close the com object and the thread it created
> when the object was instantiated.
>
> HELP!!!

Does your COM object have a way to kill a thread that it started? I do
not know the answer to that, because it's your COM object.
Generally, you do not have "to set the instantiated object to
Nothing" (unless you create an instance in persistent [Application/
session] scope), all variables set in CF page will be passed to gc()
after the page finished processing. If you want to make sure <cfset
yourComObj = "" /> after you finished using it.
I suspect that the problem is in your com object itself, it may be
creating threads and not stopping them...