zoukankan      html  css  js  c++  java
  • 解决:The APR based Apache Tomcat Native library which allows optimal performance in production...197

    tomcat日志apr报错引发的基于Tomcat Native加速Tomcat性能

    tomact服务启动报错日志如下:
    息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /home/ss/jdk1.6.0_13/jre/lib/amd64/server:/home/ss/jdk1.6.0_13/jre/lib/amd64:/home/ss/jdk1.6.0_13/jre/../lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib
    2013-6-8 10:19:00 org.apache.coyote.http11.Http11Protocol init

    缺少apr的支持: 
    Tomcat Native 是利用 APR 来提升Tomcat性能的本地API
    Tomcat Native 这个项目可以让 Tomcat 使用 Apache 的 apr 包来处理包括文件和网络IO操作,以提升性能。
    以下是tomcat官网搜索说明:
    Tomcat can use the Apache Portable Runtime to provide superior scalability, performance, and better integration with native server technologies. The Apache Portable Runtime is a highly portable library that is at the heart of Apache HTTP Server 2.x. APR has many uses, including access to advanced IO functionality (such as sendfile, epoll and OpenSSL), OS level functionality (random number generation, system status, etc), and native process handling (shared memory, NT pipes and Unix sockets).

    网上搜索解释:
    tomcat native在具体的运行平台上,提供了一种优化技术,它本身是基于APR(Apache Portable Runtime)技术
    也就是说,我们应用了tomcat native技术之后,tomcat在跟操作系统级别的交互方面可以做得更好,并且它更像apache一个,可以更好地作为一台web server。

    目前,Tomcat Native的最新版本是1.1.27 如果tomcat包里没有自带native的话
    其下载地址:http://archive.apache.org/dist/tomcat/tomcat-connectors/native/1.1.24/source/tomcat-native-1.1.24-src.tar.gz
    测试时发现我的tomcat1.5版本不支持tomcat-nativer的1.1.27最新版本,1.1.24版可以使用.


    1. 安装方法参见:http://tomcat.apache.org/native-doc/
    #yum install apr-devel
    #cd ~/apache-tomcat-6.0.36/bin
    #tar zxf tomcat-native.tar.gz
    #cd ~/apache-tomcat-6.0.36/bin/tomcat-native-1.1.23-src/jni/native
    #./configure --with-apr=/usr/bin/apr-1-config --with-java-home=/home/ss/jdk1.6.0_13 --prefi
    x=/home/ss/apache-tomcat-6.0.36
    make && make install
    安装成功如下提示:
    ----------------------------------------------------------------------
    Libraries have been installed in:
       /usr/local/apr/lib

    If you ever happen to want to link against installed libraries
    in a given directory, LIBDIR, you must either use libtool, and
    specify the full pathname of the library, or use the `-LLIBDIR'
    flag during linking and do at least one of the following:
       - add LIBDIR to the `LD_LIBRARY_PATH' environment variable
         during execution
       - add LIBDIR to the `LD_RUN_PATH' environment variable
         during linking
       - use the `-Wl,-rpath -Wl,LIBDIR' linker flag
       - have your system administrator add LIBDIR to `/etc/ld.so.conf'

    See any operating system documentation about shared libraries for
    more information, such as the ld(1) and ld.so(8) manual pages.
    ----------------------------------------------------------------------
    2. 添加环境变量:
    官网说明:Edit $CATALINA_HOME/bin/setenv.sh (creating the file if necessary) and add the path to the tc-native libraries to LD_LIBRARY_PATH

    tomcat安装目录bin下创建setenv.sh文件:
    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
        export LD_LIBRARY_PATH

    3. tomcat启动后查看日志 apr已加载上
    2013-6-8 14:31:05 org.apache.catalina.core.AprLifecycleListener init
    信息: Loaded APR based Apache Tomcat Native library 1.1.23 using APR version 1.3.9.
    2013-6-8 14:31:05 org.apache.catalina.core.AprLifecycleListener init
    信息: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].

     如果还是报错路径下找不到库:

    息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /home/saas/jdk1.6.0_13/jre/lib/amd64/server:/home/saas/jdk1.6.0_13/jre/lib/amd64:/home/saas/jdk1.6.0_13/jre/../lib/amd64:/usr/java/packages/lib/amd64:/lib:/usr/lib
    解决,将安装好的libtcnative库拷贝到上面提示的任一地址下即可:
    # ll  ~/jdk1.6.0_13/jre/lib/amd64/server/
    -rw-r--r-- 1 saas saas 1604882 6月  18 16:43 libtcnative-1.a
    -rwxr-xr-x 1 saas saas    1042 6月  18 16:43 libtcnative-1.la
    -rwxr-xr-x 1 saas saas  902937 6月  18 16:42 libtcnative-1.so
    -rwxr-xr-x 1 saas saas  902937 6月  18 16:43 libtcnative-1.so.0
    -rwxr-xr-x 1 saas saas  902937 6月  18 16:43 libtcnative-1.so.0.1.24

    原文:http://blog.51cto.com/iceeggplant/1218909

  • 相关阅读:
    Linux编程 22 shell编程(输出和输入重定向,管道,数学运算命令,退出脚本状态码)
    mysql 开发进阶篇系列 46 物理备份与恢复( xtrabackup的 选项说明,增加备份用户,完全备份案例)
    mysql 开发进阶篇系列 45 物理备份与恢复(xtrabackup 安装,用户权限,配置)
    mysql 开发进阶篇系列 44 物理备份与恢复( 热备份xtrabackup 工具介绍)
    Linux编程 21 shell编程(环境变量,用户变量,命令替换)
    Linux编程 20 shell编程(shell脚本创建,echo显示信息)
    mysql 开发进阶篇系列 43 逻辑备份与恢复(mysqldump 的基于时间和位置的不完全恢复)
    Linux编程 19 编辑器(vim 用法)
    (网页)angularjs中的interval定时执行功能(转)
    (网页)在SQL Server中为什么不建议使用Not In子查询(转)
  • 原文地址:https://www.cnblogs.com/Ai-Hen-Jiao-zhi/p/9649528.html
Copyright © 2011-2022 走看看