Multiple command structures sharing the same connection can block one another when results are pending on the connection. “Pending results” is a term that indicates that the results of a command have not yet been completely processed.
For example, assume that two command structures (A and B) share the same connection structure. If A is in the Results Available state, B is blocked from sending a command to the server because there are results pending on the connection. B remains blocked until A processes all the results of the current command and transitions into a state that indicates that no results are pending.
States that indicate pending results are:
Command sent
Results available
ANSI-style cursor end-data
Fetchable results
Sent fetchable nested command
Processing fetchable nested command
Fetching results
Sent fetching nested command
Undefined
In receive passthrough
In send passthrough
States that do not indicate pending results are:
Idle
Command initiated
Fetchable cursor results
Fetchable nested command
Fetching cursor results
Fetching nested command
Processing fetching nested command
Result set canceled
For a definition of each command state, see Table A-1.