[m2e-users] M2E consumes all available user ports and does not recover
I'd like to discuss a problem that users might experience on some platforms such as Windows XP.
When M2E needs to download lot of artifacts (e.g. during an import of huge multimodule project when local artifact cache is completely free) it may consume all available user ports for the TCP connections (Windows XP has 5000 by default) and it's not possible to make more connections (till OS frees user ports after a timeout (which is 4 minutes on Windows XP)).
When such a problem occurs it logs following record in .lastUpdated file for a specific artifact:
commons-codec-1.3.pom.lastUpdated contains (as an example):
/.error=Could not transfer artifact commons-codec\:commons-codec\:pom\:1.3 from/to central (http\://repo1.maven.org/maven2
)\: Address already in use\: no further information to http\://repo1.maven.org/maven2
The problem is that M2E is not able to recover from this problem (even when the ports are available again) and the only way how to fix this is to either run the build from command line (maven 3.0.4 will download the artifacts that M2E wasn't able to) or clear the local artifact cache.
I think, this could be considered as a bug.
Anyway, you can tweak Windows registry which worked like a charm for me:
As described in http://pic.dhe.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Ftprf_tunewindows.html
You may want to tweak:TcpTimedWaitDelay, MaxUserPort
, MaxConnect Backlog
Official Microsoft statement: http://support.microsoft.com/kb/196271