Here are the most commonly used conditions within Informix, and their use. The list is not exhaustive.
| Condition Name | Description | Potential Wait Threads | Broadcast/Signaler Thread |
| adt_cond | Related to MLS Auditing | ||
| arrived | A thread waiting for mail from the listen or sqlexec threads | poll | listen |
| awaitMC%d | A producer thread is waiting to hand off data to a producer thread | exchange (producer), scan | exchange (consumer) |
| backend:%d | Used for communication between exchange thread and sort thread | psortproc | exchange |
| bar_cond | Barrier condition. A barrier is used to synchronize consumer and producer threads which straddle exchanges | exchange (consumer) | exchange (consumer) |
| block | The system is blocked for one of five reasons: an archive, a long transaction cannot roll back, a chunk is down, a database is being dropped, and LBU_PRESERVE is set and a thread is switching logs | any thread | arcbackup, main_loop, Any thread that has marked a chunk down, onmonitor, onspace, any thread switching logs with LBU_PRESERV configured. |
| bufcond | Used by parallel sort threads when they are ready to output sort data to buffers | ||
| closed_down | Used by producers to indicate they have closed. | ||
| closing | A network thread is waiting for a connection to close | ||
| cp | checkpoint in progress | any thread trying to enter a critical section | main_loop |
| drbt_rcvq | Used on the secondary when waiting for something to arrive at the Data Replication B-tree Receive Queue | ||
| drbt_sndq | Used on the primary when waiting to use the Data Replication B-tree Send Queue | ||
| drcb_bqe | Condition when the Data replication buffer queue is empty | ||
| free_cond | Used when a producer thread is waiting for a free packet buffer | ||
| gfile | Used when waiting to write to a global file descriptor | ||
| incore | Parallel sort threads wait on this condition until they know the sort will be in-core | ||
| loa_done | The secondary onload thread (on the ADM VP has completed some work) | onload | loa_tape_worker |
| loa_request | The secondary onload thread is waiting for work. | loa_tape_worker | onload |
| log | Logical logging has been blocked | Any thread attempting to access logical logs | onlog and DR threads. Also, a thread that attempted to change logs when logs were full will broadcast this condition when logs have been backed up. |
| logbf%d | A particular log buffer is busy | Any thread trying to write to the buffer | The thread using the buffer |
| nextexp | The expedited network queue is empty | ||
| netfree | The free network queue is empty | ||
| netnorm | The normal network queue is empty (this is the network/ streams equivalent of the sm_read condition | sqlexec | poll threads |
| notify_MC%d | Used to notify a master consumer (exchange thread) that all its producers have shut down. | exchange | Producer (exchange) |
| ok_to_close | Each producer thread waits for its Master Consumer to allow closing. | exchange (producer) | exchange threads |
| ok_to_open | Each producer thread waits for its master consumer to allow opening. | exchange (producer) | exchange |
| opened_up | After spawning all producer threads, a master consumer must wait for them to set up before it can open. | sqlexec, exchange | exchange (producer) |
| opresv | Request to open an optical subsystem drive | sqlexec | opt vp # |
| packet_cond | When an iterator needs more data packets before proceeding, the thread running the iterator waits on this condition | interator | iterator |
| plogothr | The non-current physical log buffer is in use | Any thread waiting to modify the current plog buffer | Thread which is finished with the buffer |
| pt %x | Condition is true during initialization of a shared memory partition structure | Any thread trying to use a shared memory partition structure, while it is being initialized by another thread | Any thread which has finished initializing a shared memory partition structure. |
| sm_read | An sqlexec thread using shared memory communication waits on this condition for client messages | sqlexec | sm_poll |
| sortproc:%d | The combination of this condition and backend:%d shown above allow for two-way communication between exchange and psort threads | exchange | psortproc |
| unl_done | The secondary onunload thread has completed some work. | onunload | unl_tape_worker |
| unl_request | the secondary onunload thread is waiting for work. | unl_tape_worker | onunload |
To discuss how Oninit ® can assist please call on +1-913-674-0360 or alternatively just send an email specifying your requirements.