NonStop Server Guide for BEA WebLogic Server 9.2

Introduction
HP NonStop Server Guide for BEA WebLogic Server 9.2529891-002
1-3
Native Socket Multiplexer
WebLogic Server 9.2 is available for the NonStop Server and depends on Java
Standard Edition Version 1.5.0_02. The NonStop Server for Java 1.5 has been
updated to conform to this. For more information, see Java documentation.
Native Socket Multiplexer
The WebLogic Server allows two mechanisms for network socket I/O:
a pure Java socket reader implementation, and
a platform-optimized native socket multiplexer.
However, benchmarks show major performance improvements when the Native
Multiplexer is used. The details and the advantages of using the native implementation
instead of the pure Java implementation is described next.
Prior to Java 2 Standard Edition Platform 1.5.0, there was no facility within the Java
Platform for a thread to initiate and poll asynchronous I/O operations (similar to the
UNIX select (2) system call).
To overcome this, the WebLogic Server has been enhanced to provide a pure Java
socket multiplexer that simulates polling functionality. This polling is implemented by
using multiple dedicated threads polling for each of the sockets for data (by specifying
a timeout for the I/O operation). The polling socket readers are busy polling for data
even when there is no data to read, thereby incurring unnecessary overhead.
This performance issue is evident when there are more sockets than socket readers.
Therefore, each of the socket readers has to poll multiple sockets. As a result,
servicing of sockets is delayed because the socket data is not processed immediately
and the reader is blocked on data from a socket that has no data.
Figure 1-1 illustrates this scenario. There are three socket readers, SR1, SR2, and
SR3. There are six open sockets (SP1 through SP6). Sockets SP1, SP3, and SP6
have data and the others do not.
The socket readers are polling sockets SP2, SP3, and SP4. Socket reader SR2
immediately detects data on socket SP3 and processes it, whereas the other socket
readers are blocked for a chosen polling timeout period before they move to poll other
sockets. Sockets SP1 and SP6, though ready with data, are not serviced immediately,
whereas the socket readers are polling sockets SP2 and SP4 without data.