|
From: Rick on 9 Apr 2008 11:28 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 9 Apr 2008 11:40 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...
|
Pages: 1 Prev: Returning local method variables from a CFC Next: secure webservice |