int Ns_DbPoolTimedGetMultipleHandles( Ns_DbHandle **handles, char *poolname, int nhandles, int timeout );
The Ns_DbPoolTimedGetMultipleHandles function gets multiple database handles from the pool specified by poolname
and returns an array of handles (handles
). If all of the specified number of handles (nhandles
) are not available, the function waits until they are, depending on timeout
. If a timeout
is not specified or timeout
is zero, it will wait indefinitely (perhaps forever) for the handles to become available. If timeout
is greater than zero, it will either return with the handles within that time period, or return "" if the time period was exceeded. If timeout
is less than zero, it will not block.
It returns NS_OK if all requested handles are returned, NS_TIMEOUT if the attempt timed out, or NS_ERROR on an error condition. You must request all the database handles you will need for a specific pool with one call to Ns_DbPoolTimedGetHandle (if you need only one handle) or Ns_DbPoolTimedGetMultipleHandles (if you need more than one handle). You must release all your database handles explicitly (with Ns_DbPoolPutHandle) before acquiring more.