JAVA异常错误整理

1.javax.servlet.jsp.JspTagException: You must specify one of the following: size   因为xml配置项的 redirect="true" 错误

2.多字段删除重复的的SQL:DELETE from all_swingcard   
WHERE (card_no,sign_time) in   
(SELECT card_no,sign_time from (SELECT card_no,sign_time FROM all_swingcard GROUP BY card_no,sign_time HAVING COUNT(*)>1) s1)   
AND  
id NOT in (SELECT id from (SELECT id FROM all_swingcard GROUP BY card_no,sign_time  HAVING COUNT(*)>1) s2);  

3.内存溢出方案设置:

   异常:java.lang.OutOfMemoryError: Java heap space
   问题陈述:
   tomcat服务器运行一段时间后,tomcat控制台报错:
   java.lang.outOfMemoryError,java.lang.outOfMemoryError
   然后tomcat服务死掉,只有重启tomcat才能恢复服务
   分析:
   1)java虚拟机jvm内存过小
   2)程序不严密,产生太多的垃圾 

   服务器配置:8 CPU, 8G MEM, JDK 1.6.X  参数方案:
-server -Xmx3550m -Xms3550m -Xmn1256m -Xss128k -XX:SurvivorRatio=6 -XX:MaxPermSize=256m -XX:ParallelGCThreads=8 -XX:MaxTenuringThreshold=0 -XX:+UseConcMarkSweepGC

    如何优化程序:
    第一,避免死循环。仔细检查程序,防止出现死循环,这是比较容易检查的。
    第二,可以适当手动回收垃圾 ,如调用方法System.gc()
    第三,应该及时释放各种资源:内存, 数据库的各种连接。 如置对象为null,关闭数据库连接。

   Java代码导致OutOfMemoryError错误的解决:
   需要重点排查以下几点:
   检查代码中是否有死循环或递归调用。
   检查是否有大循环重复产生新对象实体。
   检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,      不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
   检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。


4.无法导入数据库时.临时修改:mysql>set global max_allowed_packet=524288000;修改 #512M

5.CPU100%查找原因和方法:

1.服务器的内存增加和核数
2.tomcat增加内存配置
3.appalication.xml 修改配置项
4.用jstack -l pid  (需要切换到Java bin目录下)
5.用ProcessExplorer 通过pid找到tid
6.将tid转换成16进制  然后在第4部步骤日志查找


6.SSL HTTPS 证书服务配置(tomcat)

方法一:通过阿里云等生成jks文件,在server.xml配置:

<Connector port="8443"
    protocol="org.apache.coyote.http11.Http11Protocol"
    SSLEnabled="true"
    scheme="https"
    secure="true"
    keystoreFile="D:\keystore.jks"
    keystorePass="123456"  URIEncoding="UTF-8"
    clientAuth="false"/>

在WEB.xml配置: 

       <security-constraint> 
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name> 
<url-pattern>/*</url-pattern> 
</web-resource-collection> 
<user-data-constraint>  
<transport-guarantee>CONFIDENTIAL</transport-guarantee> 
</user-data-constraint>  
</security-constraint>

7.<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"  
       memcachedNodes="e13f4603b60f4458.m.cnqdalicm9pub001.ocs.aliyuncs.com:11211"  
        memcachedProtocol="binary" 
  username="e13f4603b60f4458" 
        password="Hyjy8888"  
        sticky="false"  
        lockingMode="auto"  
        sessionBackupAsync="false"    
        sessionBackupTimeout="100000" 
        requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)|\f5.jsp$" 
        transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

8. DATE_SUB(NOW(),INTERVAL 1 MINUTE   一分钟以内的数据
9.find_in_set(id,'430622988,478558338,349042845,')>0  id是否数组里









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值