Posted: Thu Aug 07, 2008 7:35 am Post subject: AMI and defunct processes on AIX
Apprentice
Joined: 17 Apr 2007 Posts: 34
Hello,
We are using AMI as the API for Unidata to connect and interact with MQ.
We have an MQ server with 6.0.2.4 version installed on an AIX 5.3 box which also runs unidata.
When the program to write messages to queues (which uses AMI calls) a defunct process gets created on every send of a message (the message is sent successfully though). On debugging, I observed that as soon as the amTerminate call (which Closes the session, closes and deletes any implicitly created objects, and deletes the session) is made a defunct process is created.
The program that calls the subprogram that sends the message, runs in the background all the time.
We have to end the parent program to clear of all the defunct processes.
I have done research on the defunct processes and have read that the normal behavior of AIX is that the defunct processes get cleared off when the parent ends.
Is there a way that defuncts are not created and dont use the process ids in AIX. The MQ on the box handles approximately 10000 messages per day and those many defuncts are getting created which is undesirable.
a process becomes defunct when it ends and its parent has not waited for it.
the solution is to call wait() either for each child pid explicitly, or for all pids. see the wait() unix manual entry for the exact syntax
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum