[Zope] DLL Release
Scheck, Herman
Herman.Scheck@intp.com
Tue, 27 Nov 2001 07:43:06 -0800
Hi all,
My question is on releasing DLLs/threads used by external python methods in
Zope (ver 2.4.1).
Once a COM object (QuoteDB.dll in the following example) is accessed via an
external python method (below) and the process is completed...
----------------------
import win32com.client
import pythoncom
def GetRFQNumbers(DSN, UID, PWD):
# retrieves request for quote numbers
#
# arguments: DSN - data source name
# UID - data source user id
# PWD - data source password
# returns : record tuple of rfqNumbers
pythoncom.CoInitialize()
QuoteDB = win32com.client.Dispatch("QuoteDB.BusinessRules")
rfqNumbers = QuoteDB.GetRFQNumbers(DSN, UID, PWD)
return rfqNumbers[0]
----------------------
... the DLL becomes locked until the Zope service is shut down. Problem
here is that I do not want to have to shut down the Zope service containing
multiple applications just to replace/upgrade a single DLL used by a single
application. Am I missing something in the python code to release the
DLL/thread before returning? Or, is Zope maintaining the thread in some
way? How do I programmatically kill/close the thread when it is no longer
in use?
Thanks,
-Herman