How do I keep Cos Event Service consumers from blocking suppliers?
By default, the COS event channel delivers an event to a consumer using the same thread that received it from the supplier. When suppliers publish or emit events, they do so using a two-way invocation. When the event channel delivers an event, it also uses a two-way invocation. Since these are both two-way calls, and the delivery invocation is initiated during the publishing invocation, this causes the supplier to block (waiting for the response to its two-way publication invocation) while the consumers process the event. This behavior can be avoided by directing the event channel to use a separate dispatching thread for the push to the consumers. This is accomplished differently depending on which COS EC is being used. When using the “native” COS EC, the -CECDispatching option can be used to change the dispatching strategy. A dispatching strategy of “mt” (multithreaded) will start a second thread and use it for the push calls to the consumer.