zoukankan      html  css  js  c++  java
  • 学习常见问题汇总

    1.关于jdk版本使用

     生产环境(客户环境),jdk必须64位。 因为32位内存最高支持4g

    2.生产环境和开发环境eclipse  出现内存溢出 PermGen space 

       tomcat 默认内存分配不足导致的,修改tomcat目录下bin/catalina.bat/sh文件,添加参数如下( 8g内存 推荐配置参数):

       windows系统配置:

       set JAVA_OPTS=-server -Xms2048m -Xmx6000m -XX:MaxNewSize=512m -XX:MaxPermSize=512m 

       linux系统,注意“”必须要有,否则不起作用。

      set JAVA_OPTS="-Xms2048m -Xmx6000m -Xss1024K -XX:MaxNewSize=512m -XX:MaxPermSize=512m" 

     

    3.多线程开启

    可以提高并发数量,例如考试系统等。实测400多个考试,单节点tomcat没问题。

    修改修改tomcat目录下conf/server.xml  文件,开启Executor节点,修改Connector节点。

    <Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
    maxThreads="1000" minSpareThreads="4"/>
    <Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    maxThreads="600"
    minSpareThreads="100"
    maxSpareThreads="500"
    acceptCount="700"
    redirectPort="8443" URIEncoding="UTF-8"/>

    5.日志log4j的输出降级处理 。

     否则性能很低。生产环境(客户环境)一定关掉

     程序目录 web-inf/classes/log4j/log4j.properties参数修改如下:

     log4j.rootLogger=ERROR

    6.特殊字符过滤

      由于目前tomcat的版本的不断更新升级,安全性不断增强,有些特殊字符可能会被拦截。

      版本7.0.85存在,7.0.47不存在。

      conf/catalina.properties文件中参数:

      tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}<>

      最终解决方案还是代码的优化的处理。

    6.tomcat 安全版本 

       7.0.85 我们使用的是。

       Tomcat漏洞说明与安全加固 http://www.cnblogs.com/milantgh/p/3660106.html

    7.关于应用程序日志的查找

       应用程序安装目录文件下logs文件夹中。例如zcgl/logs。

       注意:tomcat启动日志在tomcat安装目录logs文件夹中。

    8.tocmat的启动闪退。

     大多数原因为jdk环境变量有问题,可以在start.bat/sh,文件中最后一行,添加参数pause;(暂停),进行调试。并查看原因

    9.oracle版本选用

    建议11g,1.10g很多高危安全性补丁已经添加 2.我们开发环境为11g进行的,尽量进行11g安装。

    之前实测:对于遍历循环语句,10g相当慢。

    10.eclipse卡,可以关闭validation
          原因:项目功能多,js文件也比较多,所以eclipse校验js文件有时会导致cpu爆满
          解决:关闭eclipse的validation -->  打开下面截图,按照步骤点击Disable All,保存。
             TIM图片20180520223309.png 

       eclipse加速之禁用JS、jsp等文件的语法验证:    https://blog.csdn.net/testcs_dn/article/details/39058959
       汇总解决方案: https://blog.csdn.net/zhuchunyan_aijia/article/details/50499198

    10.Oracle查看正在执行的sql

      1、查询Oracle正在执行的sql语句及执行该语句的用户

    SELECT b.sid oracleID,  
           b.username Oracle用户,  
           b.serial#,  
           spid 操作系统ID,  
           paddr,  
           sql_text 正在执行的SQL,  
           b.machine 计算机名  
    FROM v$process a, v$session b, v$sqlarea c  
    WHERE a.addr = b.paddr  
       AND b.sql_hash_value = c.hash_value;

        2、查看正在执行sql的发起者的发放程序

    SELECT A.serial#,OSUSER 电脑登录身份,
           PROGRAM 发起请求的程序,  
           USERNAME 登录系统的用户名,  
           SCHEMANAME,  
           B.Cpu_Time 花费cpu的时间,  
           STATUS,  
           B.SQL_TEXT 执行的sql  
    FROM V$SESSION A  
    LEFT JOIN V$SQL B ON A.SQL_ADDRESS = B.ADDRESS  
                       AND A.SQL_HASH_VALUE = B.HASH_VALUE  
    ORDER BY b.cpu_time DESC

     

      

  • 相关阅读:
    Java实现 LeetCode 242 有效的字母异位词
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 212 单词搜索 II
    Java实现 LeetCode 344 反转字符串
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
    Java实现 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk
  • 原文地址:https://www.cnblogs.com/itcui/p/10086687.html
Copyright © 2011-2022 走看看