早上上班,同事反应服务上不去,后台看了一下,发现tomcat挂掉了,从新启动tomcat时报错。html
ERROR: transport error 202: bind failed: Address already in use
多是异常关闭,系统没有正常关闭应用的运行环境。java
各类调整server.xml里的参数都没有用。tomcat
在网上查到两个解决方法,不过都和我实际状况不一致。最后结合二种方法解决问题。jvm
在http://forums.terracotta.org/forums/posts/list/857.page找到解决方法socket
Thanks Orion! That was just the pointer I needed. It turns out that I had a weird bit of leftover configuration in my environment variables that was causing the -Xdebug settings to be mis-configured when they were included during startup. I removed the JAVA_OPTS value from my settings and everything works properly now. Many thanks.
发如今tomcat/bin/catalina.sh中有以下:post
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=12343"
将 address=12343 改成其余,问题解决…spa
http://www.codeif.com/post/561/debug
结果启动tomcat的时候,直接出现以下错误:调试
复制代码 1 ERROR: transport error 202: bind failed: Address already in use 2 ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510) 3 JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:750] 4 FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
一开始没有仔细看,觉得http端口被占用(由于是拷贝过来的tomcat,固然先考虑的就是忘记改配置文件了)。查看端口占用状况,发现http端口并无被使用,因此又回来仔细看了一下日志。日志
这是这些年第一次遇到的错误,之前没有相似经历。不过,看着像是远程debug功能开启了致使的端口占用。通过确认,发现startup.sh的最后一行,确实如此:
1 exec "$PRGDIR"/"$EXECUTABLE" jpda start "$@"
最后因为是新上线的应用,因此暂时不须要debug功能。若是是正式环境,debug功能更是不会开启的。因此,改为下面的就能够了(就是关闭tomcat远程调试功能)
1 exec "$PRGDIR"/"$EXECUTABLE"start "$@"
Job done!
来自 <http://www.cnblogs.com/ifudon/p/4750919.html>
解决方法
在bin/startup.sh中最后一行,发现了CATALINA_OPTS设置项,把address改成其余,再重启就正常了。