Vivek,
 
In UNIX, the "poll()" system call is used for either listening or broadcasting over a set of descriptors.  These descriptors can refer to files, network/UNIX sockets, or FIFOs.
 
In this situation, the second parameter to "poll()", the value of 1, indicates that we are reading from the list of descriptors, waiting for other processes to write to whatever the descriptors are referring to.  The subsequent use of the system call "recv()" leads me to believe that the list of descriptors is comprised of network sockets, but that is just a guess.
 
So, the reason the "poll()" call is taking 5.113 seconds on some occasions and 0.0003 seconds on other occasions has to do with the performance of whatever is communicating with the program that you are trussing.
 
In Oracle terms, this behavior is very much like the wait-event "SQL*Net message from client", where the Oracle RDBMS engine is waiting for the client to say something.
 
Hope this helps...
 
-Tim
----- Original Message -----
Sent: Monday, March 10, 2003 7:33 AM
Subject: POLL by Application Service process taking too Long

truss -fdD of an application service which received data in messages format & passes it on to the Database gives the following output .
 

5.1130 poll(0xFFBFA0D8, 1, 240000)         = 1

 0.0002 recv(17, "           N 0 0 1 4 4 1".., 28, 0)   = 28

 0.0003 poll(0xFFBFA0D8, 1, 240000)         = 1

 0.0001 recv(17, " + 0 0 0 2 2 U n i s e r".., 603, 0)  = 603 

 

Qs. Why is "poll" so long i.e. 5.1130 seconds ?

 

Thanks

 

P.S. Will provide any info needed

 

Reply via email to