Es kann in den folgenden Szenarien lange dauern, bis das Linux-Betriebssystem die TCP-Ports
nach dem Neustart einer WebSphere Application
Server-Instanz freigibt:
- Server sofort nach dem Stoppen des Java™-Prozesses starten
- Server neu starten
- Server in Debugmodus neu starten
Es kann mehr als drei Minuten dauern, bis das Betriebssystem
den Port freigibt. Sobald die JVM das Stoppsignal empfängt, werden Informationen an das
Betriebssystem zum Löschen aller Empfangsports übergeben.
Das Betriebssystem ist für das Bereinigen der im Gebrauch befindlichen Ports zuständig.
Die folgende Nachricht wird möglicherweise in der Datei
SystemOut.log angezeigt,
wenn der Befehl
startServer sofort nach dem Stoppen
des Serverprozesses ausgegeben wird:
[6/26/11 4:41:59:647 EDT] 00000018 TCPPort E TCPC0003E: TCP
Channel TCP_2 initialization failed. The socket bind failed for localhost and port 9083. The port may already be in use.
Nachdem der
Port vom Betriebssystem freigegeben wurde, kann sich WebSphere Application Server an den Port binden.
Nach einigen Minuten wird möglicherweise die folgende Nachricht angezeigt:
[6/26/11 4:44:04:677 EDT] 00000018 TCPChannel A TCPC0001I: TCP Channel TCP_2 is listening on localhost port 9083.
Es gibt keine Lösung für
diese Einschränkung. Sie können aber versuchen,
den Zeitlimitwert zu optimieren, indem Sie sich am Linux-Betriebssystem als Benutzer
root anmelden.
Nach der Anmeldung fügen Sie den folgenden Eintrag in der Datei
sysctl.conf hinzu,
die sich in der Regel im Verzeichnis
etc befindet.
net.ipv4.tcp_fin_timeout = 30
Durch das Hinzufügen eines Zeitlimiteintrags in der Datei
sysctl.conf wird das Problem nicht gelöst.
Allerdings wird dadurch festgelegt, dass das Betriebssystem
die Ports innerhalb der angegebenen Zeitspanne bereinigt. In diesem Fall
findet die Bereinigung innerhalb von 30 Sekunden statt.