The socket Muxer manages the server’s existing socket connections.
It first determines which sockets have incoming requests waiting to be processed. It then reads enough data to determine the protocol and dispatches the socket to an appropriate runtime layer based on the protocol.
In the runtime layer, the socket muxer threads determine which execute thread queue to be used and delegates the request accordingly.
From the documentation on http://edocs.bea.com/wls/docs100/perform/WLSTuning.html#wp1152246 ,
Weblogic has two versions of the socket muxer, one is the Java version and the other uses a native library which makes better use of operating system calls. The Enable Native IO checkbox on the server’s configuration settings tells the server which version to use. This is ON by default for most platforms.
Native muxers provide superior scalability because they implement a non-blocking thread model. When a native muxer is used, the server creates a fixed number of threads dedicated to reading incoming requests. Oracle recommends using the default setting of true for the Enable Native IO parameter which allows the server to automatically select the appropriate muxer to use.
You must ensure that to use Native I/O, the native library must be present in the server’s shared library path . This is set up with the default scripts.
When the server does not find the native library, it throws an error
java.lang.UnsatisfiedLinkError: no muxer in java.library.path
and then loads the Java version of the muxer.
You can see more details about muxer at this link : http://jojovedder.blogspot.com/2009/05/weblogic-socket-muxers-are-not-stuck.html and http://jojovedder.blogspot.com/2009/07/more-on-weblogic-muxers.html
Steps to Enable PosixMuxer :
1. Start the Weblogic Server processes with the following JAVA_OPTION turned on
in the setDomainEnv.sh script:
2. Restart the servers and run the test.
The following is a sample config.xml with Posix Muxer enabled,
PosixMuxer is a native implementation of SocketMuxer for POSIX compliant platforms.
Its a native muxer for UNIX OS.The poll() system call is used to determine when data is available for reading.