BEA WebLogic Server Tuning Guide

21
Examples of well-known ports are the HTTP port (80), HTTPS port (443), TELNET (23), and SMTP (25).
Registered Ports are those from 1024 through 49151.
Registered Ports are listed by the IANA and on most systems can be used by ordinary user processes or
programs executed by ordinary users.
Examples of registered ports are the TIP port (3160) and X windows system (6000-6063).
Dynamic and/or Private Ports are those from 49152 through 65535.
These are also called the ephemeral ports. These ports are assigned by the system for binding unnamed
sockets before they can communicate. They can be reused once the application using the sockets closes the
socket.
In the TCP/IP V6 stack, by default, the ephemeral port range is defined to include both the Registered and
Dynamic port ranges; that is, ports ranging from 1024 to 65535.
These ephemeral port ranges are divided into 16 chunks and each processor gets assigned a chunk of
ephemeral ports that is loosely associated with the processor. Depending on the processor a WebLogic
Server starts in, its port number might not be associated with the processor it is starting on. This will result in
late detection of socket reuse errors if the port number used by WebLogic Server is also in use by another
application in the processor where the port number chunk belongs to.
For example, consider a WebLogic Server configured to listen on port 10000. By default, the
MINEPHEREAL PORT is 1024 and MAXEPHEMERAL PORT is 65536. So, each processor has a 4000 port
range associated with it. (65000 1000) /16 = 4000.
Port number 10000 falls in the chunk associated with CPU 2.
CPU 0 has the chunk 1025 5025
CPU 1 has the chunk 5026 9026
CPU 2 has the chunk 9027 13027 and so on.
Assume that the WebLogic Server instance (listening on port 10000) was started on CPU 1. Because the
WebLogic Server instance was started on CPU 1, the WebLogic Server will not know if a process in CPU 2
was already using the port until the time it tries to accept connections. Because of the way the TCP/IP V6
stack works, the WebLogic Server instance will report a failure only when a client tries to connect, instead
of while trying to bind to the port for listening purposes. From that point onwards, the WebLogic Server
instance will not be useful for accepting client requests and will have to be forcibly restarted by the
nodemanager (if one is configured) after health checks fail. But even on restart, the same can continue.
The correct fix for this is to configure the instances properly.
The purpose of this section is to provide an overview of port clashes and how they manifest themselves and
how to avoid them. Note that these clashes are primarily for WebLogic Servers configured with the same IP
address but different ports.