• 今天myeclipse 下的tomcat又起不来了。。。


    其实这是看人品的。。

    这两天问题不断,我也搞得满脑子浆糊。。

    我决定静下来一个bug一个bug的解决,不能乱了阵脚。。

    从最无厘头的问题说起,打开myeclipse,启动tomcat后一直停在:

    INFO: Initializing Spring root WebApplicationContext
    AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@71e5987)
       LogAbandoned: false
       RemoveAbandoned: true
       RemoveAbandonedTimeout: 180

    上面还有信息显示:

    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Program Files\Java\jdk1.7.0_10\bin;D:\Program Files\Apache Software Foundation\Tomcat 7.0\bin

    本以为是这个出错,网上有人说下载一个tomcat的tcnative-1.dll放到C:\Windows\System32目录下,试了没用。不过也有人说这个错误不算错,只是tomcat提示 一下没有加载到tomcat自己的库,不碍事。事实证明就是不碍事。

    回归正题,话说tomcat起不来,我可是尝尽各种方法。重启tomcat,重启myeclipse,重启pc,换tomcat端口,曾经成功过一次,被我一得瑟关掉重来一遍的,结果再没起来过。。

    后来又在老大提醒下,查看数据库oracle连接数,完全没满,重启oracle服务器,还是没用。

    最后出绝招,把tomcat卸掉重装了。成功启动!

    INFO: Server startup in 327 ms

    后来又出过几次起不来的情况,果然是部署的项目的数据库因为网络环境连不上了。可以先本地试着连着看,如果真连不上,那tomcat基本起不来了。

    网上有人说解决方案是:(还没试过,先记下来)

    dataSource的配置 removeAbandoned = true去掉即可。

    http://hi.baidu.com/javashow/item/be24eb77c574382d5c1789df

    以下为摘录:

    在配置时,主要难以理解的主要有:removeAbandoned java.lang.InstantiationExceptionlogAbandonedremoveAbandonedTimeoutmaxWait这四个参数,设置了rmoveAbandoned=true 那么在getNumActive()快要到getMaxActive()的时候,系统会进行无效的Connection的回收,回收的 ConnectionremoveAbandonedTimeout(默认300)中设置的秒数后没有使用的Connection,激活回收机制好像是getNumActive()=getMaxActive()-2。 有点忘了。
    logAbandoned=true的话,ArrayIndexOutOfBoundsException将会在回收事件后,在log中打印出回收Connection的错误信息,包括在哪个地方用了Connection却忘记关闭了,在调试的时候很有用。
    在这里私人建议maxWait的时间不要设得太长,maxWait如果设置太长那么客户端会等待很久才激发回收事件。

    以下是我的配置的properties文件:

    #连接设置

    jdbc.driverClassName=oracle.jdbc.driver.OracleDriver
    jdbc.url=jdbc:oracle:thin:@127.0.0.1:1521:DBSERVER
    jdbc.username=user
    jdbc.password=pass
    #<!-- 初始化连接 -->
    dataSource.initialSize=10
    #<!-- 最大空闲连接 -->
    dataSource.maxIdle=20
    #<!-- 最小空闲连接 -->
    dataSource.minIdle=5
    #最大连接数量
    dataSource.maxActive=50
    #是否在自动回收超时连接的时候打印连接的超时错误
    dataSource.logAbandoned=true
    #是否自动回收超时连接
    dataSource.removeAbandoned=true
    #超时时间(以秒数为单位)
    dataSource.removeAbandonedTimeout=180
    #<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
    dataSource.maxWait=1000

     

     

  • 相关阅读:
    Java接口自动化测试实战001----get、post方法实现与封装
    临近年关,两个磁盘占满引起的服务下线
    Abp小试牛刀之 图片上传
    Abp vNext异常处理的缺陷/改造方案
    Oh my God, Swagger API文档竟然可以这样写?
    【C#】DockPanelSuite 中 DockState.Document 状态下子窗体控件不显示的解决方案
    环境系列——cygwin启动flink
    环境系列——window10环境下编译Flink源码编译
    弱肉强食——《哆啦A梦:大雄的新恐龙》观后感
    bilibili插件推荐
  • 原文地址:https://www.cnblogs.com/peterpanzsy/p/2989655.html
Copyright © 2020-2023  润新知