`
desert3
  • 浏览: 2160898 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

resin自动重启(程序无限循环导致)

阅读更多
问题:生产库Web集群服务器中Resin容器不断不定时自动重启

0,查看应用程序日志,没有发现自动重启的原因
1,查看resin日志,希望从中得到更多的异常信息辅助排查,没有看到有价值的异常信息。
修改resin默认的日志配置,显示更加多的信息来排查
2,查看系统日志文件(/var/log下面的各种日志),没有发现问题
3,设置jvm出错时的日志文件位置,java -XX:ErrorFile=/var/log/java/java_error_%p.log(11),发现在resin自动重启时,没有产生上述的异常日志文件。
4,参考resin官网trouble shooting
5,用jstat命令查看jvm中堆和永久代内存的分配使用情况,没有发现问题(在上述内存没有满时,resin又自动重启了)
6,调大每个线程使用的堆大小,配置jvm参数-Xss16M,问题依旧
7,<jvm-arg>-Xcheck:jni</jvm-arg>
8,后发现每次resin自动重启前,在nginx的access日志中都有一个google robot访问某url的记录,查看具体url相关代码,发现里面有一死循环。。。。。

附录1(jvm crash log):
Java的应用有时候会因为各种原因Crash,这时候会产生一个类似java_errorpid.log的错误日志。可以拿到了这个日志,怎样分析Crash的原因呢?下面我们来详细讨论如何分析java_errorpid.log的错误日志。
一. 如何得到这个日志文件如果有一个严重的错误引起Java进程非正常退出,我们叫Crash,这时候会产生一个日志文件。缺省情况下,这个文件会产生在工作目录下。但是,可以在Java启动参数通过下面的设置,来改变这个文件的位置和命名规则。例如:
java -XX:ErrorFile=/var/log/java/java_error_%p.log
就将这个错误文件放在/var/log/java下,并且以java_error_pid.log的形式出现。

查找JVM的致命错误日志
这时候可以查一个以 "hs_err_pid" 开头的日志名,例如hs_err_pid1125.log,其中1125是进程号。这个文件中也记录了一些宝贵的信息来提供一些线索,特别是Java自身的一些Bug。这个文件一般为于当前的工作目录中bin目录下,同时会有core.1125的文件,可以用jstack来查看程序崩溃当时的线程状态,是否有死锁。用户可以用find命令自己搜索到。

附录2(resin log):
把修改resin.conf文件中的日志的级别由info-》finer(all)
<!--
     - Logging configuration for the JDK logging API.
    -->
  <log name="" level="[color=red]all[/color]默认值是info" path="stdout:"
       timestamp="[%H:%M:%S.%s] {%{thread}} "/>

  <!--
     - 'info' for production
     - 'fine' or 'finer' for development and troubleshooting
    -->
  <logger name="com.caucho" level="[color=red]all[/color]默认值是info"/>

  <logger name="com.caucho.java" level="[color=red]all[/color]默认值是config"/>
  <logger name="com.caucho.loader" level="[color=red]all[/color]默认值是config"/>

在host-default标签下添加如下配置,把系统的stdout和stderr日志输出到指定文件
<log name="" level="all" path="stdout:"   timestamp="[%Y-%m-%d %H:%M:%S] {%{thread}} "/>
<log name="" level="all" path="stderr:"   timestamp="[%Y-%m-%d %H:%M:%S] {%{thread}} "/> 
<stdout-log path="logs/${host.name}/stdout.log" (12)
            archive-format="stdout-%Y%m%d.log.gz"
            timestamp="[%Y.%m.%d %H:%M:%S.%s]" 
            rollover-size="10mb"
            rollover-period="1D"/>
      <stderr-log path="logs/${host.name}/stderr.log" 
            archive-format="stderr-%Y%m%d.log.gz"
            timestamp="[%Y.%m.%d %H:%M:%S.%s]" 
            rollover-size="10mb"
            rollover-period="1D"/>



附录3(resin jmx配置):
<jvm-arg>-Dcom.sun.management.jmxremote</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.port=12345</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.ssl=false</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.password=false</jvm-arg>
<jvm-arg>-Dcom.sun.management.jmxremote.authenticate=false</jvm-arg>
<jvm-arg>-Djava.rmi.server.hostname=192.168.0.31</jvm-arg>

重启resin,查看12345端口有没有在监听

参考:
caucho resin Troubleshooting
infinite loop
分享到:
评论

相关推荐

    resin内存益出后自动重启

    ### Resin内存溢出后自动重启方案解析 #### 背景介绍 Resin是一款高性能、功能丰富的Java应用服务器及Web容器,广泛应用于各种企业级应用程序和服务中。它支持多种编程语言,包括Java、JSP等,并且在性能优化方面...

    resin linux 重启脚本

    resin linux 重启脚本,包括进程杀死,端口检测等

    Windows下Resin的配置与部署(附图).doc

    - 重启`resin.exe`服务。 - 使用新创建的管理员账户登录控制台。 #### 三、Resin中的项目部署 在Windows环境下部署项目通常涉及到IDE(集成开发环境)的设置以及Resin服务器的配置。 ##### 1. 配置MyEclipse - ...

    resin常见有关问题

    - 应用程序重新加载会导致会话丢失,考虑使用持久性会话存储。 - 浏览器cookie限制可能导致会话丢失,尤其是当使用大量cookie时。减少cookie数量和大小,或考虑使用URL重写(但出于安全考虑,URL重写并不推荐)。 ...

    运维-resin常见问题.txt

    Resin是一款高性能的企业级Java应用服务器,它支持Servlet、JSP以及各种Java EE规范,被广泛应用于Web应用程序的部署与运行环境中。其核心特点是高效、稳定且易于管理。 ##### 1.2 Resin服务器停机问题 当Resin...

    resin服务器有3部分,resin1,resin-webapp,resin-lib,由于大小限制分开传

    1. **resin1**: 这部分通常包含了Resin服务器的基础运行时环境,包括服务器的主程序、配置文件、日志系统以及服务器启动和管理的相关工具。在Resin服务器启动时,resin1中的`resin.jar`或`boot.jar`是首要加载的部分...

    resin3 和 resin4

    Resin,由CAUCHO公司开发,是一款备受推崇的应用服务器,尤其在处理Servlet和JSP方面表现出色。作为Java语言的产物,Resin以其高效能和稳定性的特点,在IT行业中赢得了广泛的认可。Resin3和Resin4是该服务器软件的两...

    resin-3.0.24.zip

    开发者在开发过程中,修改完Java代码后,无需手动重启服务器,Resin会自动检测到变化并重新加载新的类,极大地提高了开发效率。对于持续迭代和调试的项目来说,这是一个非常实用的功能。 2. 高性能:Resin以其高...

    resin-pro-4.0.55全功能无限制版

    这款软件提供了全面的功能,对于开发者和运维人员来说,它是一个可靠的平台,可以支持各种Java应用程序的部署和运行。以下是关于Resin Pro 4.0.55的一些关键知识点: 1. **Resin简介**:Resin是由Caucho Technology...

    resin4+wrapper green

    Wrapper还提供了日志记录、错误处理和自动重启等功能,增强了系统稳定性。 在"resin-4.0.24_wrapper"这个压缩包中,我们可以预期包含以下文件和目录: 1. `bin`目录:包含了启动和停止Resin服务的脚本,如`resin....

    resin-3.1.12

    5. **热部署与自动重启**:Resin支持应用的热部署,允许开发者在不中断服务的情况下更新应用程序。此外,如果检测到应用文件的更改,Resin会自动重启相关的组件,简化了开发和调试过程。 6. **安全管理**:Resin...

    resin3 resin3下载

    1. **高性能**:Resin3以其高效的请求处理和内存管理机制著称,能够处理高并发的Web应用程序。它采用了预编译JSP和HTTP缓存技术,提高了服务器响应速度。 2. **轻量级**:尽管Resin3支持Java EE标准,但它的设计...

    resin4.0 服务器 (for windows版本)

    1. **Java EE兼容性**:Resin 4.0 支持Java EE 5和6规范,包括Servlet、JSP、EJB、JMS、JTA等,能够运行各种企业级Java应用程序。 2. **Quercus PHP支持**:Resin内嵌了Quercus,这是一个高效的PHP解释器,实现了...

    resin-3.0.22.zip

    12. **热部署**:Resin支持Web应用程序的热部署,无需重启服务器,开发者可以实时看到代码更改的效果。 综上所述,Resin 3.0.22作为一个成熟的Java应用服务器,不仅提供了丰富的功能,还具备优秀的性能和可扩展性,...

    使用Resin在IDE中快速启动web项目

    【描述】:Resin是一款高性能、轻量级的Java应用服务器,尤其适用于处理Web应用程序。它以其高效的Servlet和JSP支持而闻名,对于开发和部署Java Web项目非常方便。本文将详细介绍如何在集成开发环境(IDE)中利用...

    RESIN开机未登录启动及普通应用程序开机未登录启动的通用方法介绍

    综上所述,无论是Resin还是其他普通应用程序,通过以上通用方法,可以实现开机未登录启动,提高系统的自动化运维水平。这种方法在服务器上线和维护中十分常见,能够确保服务的稳定性和连续性,降低人工干预的需求,...

    resin服务器resin-pro-3.1.8

    - **热部署**:支持应用的热部署,无需重启服务器即可更新应用程序。 4. **集成开发环境**: - **IDE支持**:Resin可以很好地与Eclipse、IntelliJ IDEA等主流Java开发工具集成,方便开发和调试。 5. **应用服务*...

    resin 安装使用详细手册

    - **启动步骤**:启动 Resin 服务器后,应用程序会自动加载并启动。 ##### 1.5 将 Resin 运行为后台进程 (Daemon) - **Windows 平台**:使用 `resinctl.exe start` 命令。 - **Unix/Linux 平台**:使用 `resinctl....

    resin安装包

    将您的Java Web应用(WAR文件)放入`webapps`目录下,Resin会自动检测并部署应用。例如,将名为`myapp.war`的文件放在`/opt/resin-4.0.46/webapps`目录下。 6. **访问Web应用** 通过浏览器访问`...

    resin 入门基础教程.pdf

    - 解释 Resin 的 Watchdog 功能,用于监控应用程序的状态,当应用出现异常时能够自动重启或采取其他措施。 #### 六、虚拟主机配置 - **虚拟主机** - 虚拟主机的概念及在 Resin 中的应用方法,包括多个域名指向...

Global site tag (gtag.js) - Google Analytics