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是否数组里