Table 9-1 lists the network I/O providers that Oracle CEP supports.
Table 9-1 Oracle CEP Network I/O Providers
A non-blocking provider provides fully non-blocking I/O for reads and writes. That means that each call to read or write on the Connection interface will return immediately without blocking. If the underlying connection is not ready, then the read or write call will simply return zero. At that point, the calling code must use one of the notification mechanisms in the NetIO API to wait until the connection is ready to read or write. Non-Blocking providers may also support a non-blocking connect call, which means that a thread need not block if it takes a long time to establish (or fail to establish) a connection to a remote server.
A semi-blocking provider provides non-blocking I/O for the read call, but each write call blocks until the data has been handed to the TCP/IP stack. Some platforms provide mechanisms that make it possible to implement a write-blocking provider that is faster than a fully non-blocking provider, but still allows for high scalability.
Linux with JRockit: com.bea.core.netio.provider.jrockit.JRockitEngine
A blocking provider blocks on each read and write call until it is complete. If there is no data ready to read, then read will block until there is. This type of provider is much less scalable because there must be a thread waiting for each network connection that might have data. Oracle recommends that this type of provider should not typically be used.