Starting the weblogic server, nodemanager process or any other process which uses the port gives the following exception.
Even if you kill all process using the port, no matter how many times, yet you keep getting error below when you start any process that uses the desire port.
Here's the probable reason / cause.
Try this command.
$ netstat -a | grep '5556'
tcp 0 0 hp023.5556 hp024.62396 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.65171 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.59435 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.62333 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.59374 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.61982 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.62583 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.61996 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.62315 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.62124 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.62108 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.62318 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.62399 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.62117 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.51602 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.51605 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.51609 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.65371 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.64958 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.65174 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.65327 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.65320 FIN_WAIT_2
tcp 0 0 hp023.5556 hp024.65318 FIN_WAIT_2
Well, when we have killed the process, yet the netstat shows the port in use. Hmmm... why so?
Explaination:
FIN_WAIT_2 seems to occur when the server has an active connection with a client and it wants to shut down the TCP connection (probably in response to a normal application layer "exit"). The server sends the client a packet with a "FIN" bit set. At this point, the server is in FIN_WAIT_1 state. The client gets the FIN packet and goes into CLOSE_WAIT state, and sends an acknowledgment packet back to the server. When the server gets that packet, it goes into FIN_WAIT_2 state. From the server's perspective, the connection is now closed, and the server can't send any more data. However, under the TCP protocol, the client needs to shut down also by sending a FIN packet, which the server TCP implementation should ACK. The server should close about two milliseconds later.
The following diagram is taken from RFC 793 (defining the TCP protocol):
TCP A TCP B
1. ESTABLISHED ESTABLISHED
2. (Close)
FIN-WAIT-1 --> <SEQ=100><ACK=300><CTL=FIN,ACK> --> CLOSE-WAIT
3. FIN-WAIT-2 <-- <SEQ=300><ACK=101><CTL=ACK> <-- CLOSE-WAIT
4. (Close)
TIME-WAIT <-- <SEQ=300><ACK=101><CTL=FIN,ACK> <-- LAST-ACK
5. TIME-WAIT --> <SEQ=101><ACK=301><CTL=ACK> --< CLOSED
6. (2 MSL)
CLOSED
Some clients have faulty TCP implementations, and leave the server hanging in FIN_WAIT_2 state.
Only the UNIX Administrators would know, how to release these ports. Once they let you know if the ports are released. Try starting the process and hopefully it will work.
You will not face the fin_wait issue if you close the process using the product provided stop script. That's why better stop the server using admininistration console or weblogic provided tools to stop the process rather than "Ctrl+C" or "kill -9".
No comments:
Post a Comment