Steven,
I found the following snippet in MSDN under CreateProcess:
"The created process remains in the system until all threads within the
process have terminated and all handles to the process and any of its
threads have been closed through calls to CloseHandle. The handles for both
the process and the main thread must be closed through calls to CloseHandle.
If these handles are not needed, it is best to close them immediately after
the process is created."
If this is your case, what is unknown is why it is "not" happening in
win98?? Can you run a test and close the PROCESS_INFORMATION HANDLEs for
the main thread and the process itself and see if that makes a difference
(and any other HANDLEs that you might have gotten through OpenProcess()
calls...)?
Mike Shelton
-----Original Message-----
From: Steven Vajdic [mailto:svajdic@asc.corp.mot.com]
Sent: Thursday, June 06, 2002 12:53 AM
To: pgsql-general@postgresql.org; pgsql-hackers@postgresql.org;
svajdic@asc.corp.mot.com; steven_vajdic@yahoo.com.au
Subject: [HACKERS] PostgreSQL and Windows2000 and defunct processes
Problem:
Win2000 and Cygwin/postgresql-7.1 produce
"defunct" processes after each run which can ONLY be killed
by Win Task Manager. If you allow too many "defunct" processes
your database requests slow down and your number of connections
increases, i.e. if you
have 32 connections specified in your postgresql.conf file and
and 32 "defunct" processes and try to run again
the connection will be refused.
When you are killing "defunct" processes and reach the one which was
first formed
the postmaster restarts postgresql.
How to get read of those "defunct" processes?
Much obliged.
Steven.
P.S. You do not have these "defunct" processes under Win98!!!???
---------------------------(end of broadcast)---------------------------
TIP 6: Have you searched our list archives?
http://archives.postgresql.org