线上某台机器tomcat启动无法访问,通过jstack报错。
Unable to open socket file: target process not responding or HotSpot VM not loaded
因为这个错误提示误导我以为JDK的问题,升级JDK到1.7问题依旧。
这个时候查看日志发现:
INFO: validateJarFile(/home/admin/tlog-proxy/target/tlog-proxy.war/WEB-INF/lib/jsp-api-2.1-glassfish-2.1.v20091210.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/el/Expression.class
2015-12-03 02:43:53,332 org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/home/admin/tlog-proxy/target/tlog-proxy.war/WEB-INF/lib/servlet-api-2.5-20081211.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
2015-12-03 02:44:03,987 org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /home/admin/tlog-proxy/.default/deploy/tlog-proxy.war has finished in 10,908 ms
2015-12-03 02:44:03,990 org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-7001"]
2015-12-03 02:44:04,051 org.apache.catalina.startup.Catalina start
INFO: Server startup in 11069 ms
2015-12-03 02:44:09,258 org.apache.tomcat.util.net.JIoEndpoint$Acceptor run
SEVERE: Socket accept failed
java.net.SocketException: 打开的文件过多
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:398)
at java.net.ServerSocket.implAccept(ServerSocket.java:530)
at java.net.ServerSocket.accept(ServerSocket.java:498)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:220)
at java.lang.Thread.run(Thread.java:745)
lsof | grep java | wc -l发现超过1万,正常应该只有几百。然后查看发现是抓取任务太多导致。
事后排查抓取任务才几百个,为啥会创建出上万个连接呢,最后排查发现HttpClient没有调用 close
public void close() {
if (client != null) {
client.getConnectionManager().closeIdleConnections(0, TimeUnit.SECONDS);
}
}
相关推荐
总之,线上问题的排查工具和手段多样,从日志分析到系统监控,再到网络和Java进程分析,都有相应的工具可供使用。作为开发和运维人员,需要熟练掌握这些工具,并且能够根据实际遇到的问题灵活运用,快速定位问题所在...
这些日志可以帮助分析故障模式,改进程序的容错机制,或者为后期的问题排查提供依据。 6. **可配置性**:监控程序应允许用户自定义配置,例如设置检查间隔、重启策略、报警阈值和接收人列表等,以适应不同的环境...
通过遵循上述步骤,可以有效地实现远程Tomcat调试,从而更高效地排查线上环境中遇到的问题。需要注意的是,不同版本的Tomcat、IDEA和Java可能会有一些配置差异,因此建议根据实际情况进行调整。希望本文能为你解决...
9. **故障排查**:理解Tomcat的错误日志、堆栈跟踪以及如何使用调试工具,对于快速定位和解决线上问题至关重要。 10. **最新版本特性**:随着Tomcat版本的不断迭代,每个新版本都会引入新的特性和改进。了解这些...
5. **Tomcat安全管理**:配置`tomcat-users.xml`来添加用户和角色,实现基于角色的访问控制(RBAC)。设置`context.xml`或`server.xml`中的 Realm组件进行身份验证。 6. **性能优化**:调整Tomcat的线程池大小,...
- 日志记录方面,Spring Boot 默认使用 Logback 或 Log4j,可以通过配置调整日志级别,便于排查问题。 以上是基于 Spring Boot 开发线上作业管理系统的一些核心技术和关键点。实际项目中,还需要考虑性能优化、...
4. **容错处理**:增加异常处理机制,对于可能出现的各种错误情况进行友好提示,并记录错误日志,以便于后续的问题排查和修复。 #### 六、结论与展望 线上医院挂号系统的成功实施不仅极大地提升了医疗服务的效率和...
同时,系统具备良好的错误处理和日志记录功能,便于问题排查和系统优化。 该线上采购平台的实现不仅提高了用户购买生鲜产品的便捷性,也节省了商家的运营成本,促进了电子商务行业的创新和发展。它降低了传统实体...
日志框架如Log4j或Logback用于记录系统运行日志,便于问题排查和系统优化。 此外,系统可能还包括通知服务、消息队列、定时任务等组件,如使用RabbitMQ或Kafka实现异步通信,Quartz或Spring Task进行任务调度。这些...
WebSocket是一种在客户端和服务器之间建立持久性连接的网络协议,它允许双向通信,即服务器和客户端都可以主动发送数据。在将WebSocket应用部署到服务器时,可能会遇到连接失败的问题,这通常由多种因素引起。以下是...
此外,项目可能还包括错误处理机制、日志记录、性能监控等方面的设计,以确保系统的稳定运行和问题排查。整体来说,"springboot517"项目通过整合SpringBoot和Vue的优势,构建了一个功能完善、易于维护的高校线上心理...
如果遇到404错误,检查配置文件和服务器日志,排查问题。 在使用Java项目的过程中,用户手册会提供详细的操作指南,包括如何启动和停止应用、如何处理常见问题、如何更新和维护项目等。对于开发者来说,理解并熟练...
10. **部署和运行**:完成开发后,系统需要部署到Web服务器,如Tomcat或Jetty,以供用户通过网络访问。部署过程涉及配置服务器环境、设置数据库连接等步骤。 总的来说,JavaWeb图书馆管理系统是Java技术和Web技术的...
由于项目可能涉及到复杂的配置和问题解决,标签中的“远程协助”可能意味着项目中集成了远程协助工具或服务,如TeamViewer、AnyDesk等,以便开发者之间进行实时协作和问题排查。 4. **课程设计**: 作为一个课程...
同时,利用Log4j或Logback等日志工具记录系统运行情况,便于问题排查和系统优化。 9. **测试与部署** 使用JUnit进行单元测试,确保各模块功能正常。系统部署可能采用Docker容器化技术,便于环境隔离和快速部署。 ...
9. **部署**:学习如何将项目部署到服务器,如Tomcat或Nginx,并配置域名和SSL证书,实现线上访问。 10. **性能优化**:考虑前端的懒加载、服务端的缓存策略、数据库索引优化等,提高系统性能。 这个项目不仅提供...
6. 日志管理:记录系统操作日志,便于问题排查和审计。 7. 审计追踪:记录用户操作行为,保证操作的可追溯性。 五、开发流程与部署 开发过程中,开发者通常会采用Git进行版本控制,利用Maven或Gradle进行项目构建...
9. **异常处理与日志记录**:为了提高系统的健壮性,通常会进行异常处理并记录日志,便于问题排查和系统维护。 10. **单元测试与集成测试**:利用JUnit或其他测试框架对各个模块进行测试,确保代码质量。 这个在线...
10. **异常处理与日志记录**:良好的异常处理机制和日志记录对于系统的稳定性和问题排查至关重要,JAVA提供了健全的异常处理结构和日志框架如Log4j。 11. **性能优化**:通过负载均衡、缓存策略、数据库索引优化等...