NonStop Server Guide for BEA WebLogic Server 8.1

Introduction
HP NonStop Server Guide for BEA WebLogic Server 8.1529891-001
1-3
Native Socket Multiplexer
must be efficient. To this end, the TMF product has been enhanced to support one-
phase commit optimization for imported branches.
SQL/MX SPR 2.0 is HP’s next generation relational database management system
designed for business-critical applications. SQL/MX software brings traditional
NonStop fundamentals—high availability, scalability, reliability, and parallel
processing—to a distributed database.
The WebLogic Server 8.1 Service Pack 3 is available for the NonStop server. This
version of the WebLogic Server depends on Java 2 Standard Edition Version
1.4.2_04. The NonStop Server for Java 4 has been updated to conform to this.
Refer to Java documentation for more information.
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.
Benchmarks show major performance improvements when using the native
multiplexer. Below are details of the two implementations and the advantages of the
native implementation over the pure Java implementation.
Prior to Java 2 Standard Edition Platform 1.4.1_05, 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 work around this, the WebLogic Server product provides 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 always busy, polling for
data even when there is no data to read, thereby incurring unnecessary overhead.
The performance issue is more visible when there are more sockets than socket
readers. In this case, each of the socket readers has to poll multiple sockets, which
can result in situations where a socket with data is not processed immediately while
the reader is blocked on data from a socket that has no data, thereby delaying the
servicing of sockets.
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