自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Cannot get a connection, pool exhausted, cause: ValidateObject failed

连接池突然不能使用了,重启应用仍然报连接池耗尽,最后debug发现是有人创建了dual表,导致校验语句select 1 from dual返回值为空,而无法通过连接池的连接校验。 Caused by: org.apache.commons.dbcp.SQLNestedException: Can...

2019-09-30 14:04:07

阅读数 3

评论数 0

原创 mysql一次更新内容大于4M时报错修改max_allowed_packet变量

mysql更新时报错: Packetforqueryistoolarge(8479926>4194304).Youcanchangethisvalueontheserverbysettingthemax_allowed_packet'variable. 是因为一次更新内容超过默认...

2019-08-28 10:26:32

阅读数 12

评论数 0

原创 oracle序列修改语句

select ss.*,concat( concat( 'alter sequence '||ss.sequence_name||' increment by '||ss.incrementNum||';'||chr(10), 'select '||ss.sequence_name||'.nex...

2019-08-22 14:38:31

阅读数 13

评论数 0

原创 将mysql表数据拼接成oracle的insert语句

(1)将表名传入下面的select,将生成的sql复制出来执行就可以得到insert语句 select CONCAT('select CONCAT(\'INSERT INTO ',TABLE_NAME,'('), group_concat(COLUMN_NAME),') VALUES(\',...

2019-08-20 09:43:30

阅读数 57

评论数 0

原创 ETL开源工具kettle中Job流程的理解

jobentry节点(自定义插件、代表着功能) link连线(代表流程逻辑) Job流程(可执行线程,代表一项工作处理) Result结果对象 流程Job继承线程Thread类,就是一个可执行线程,并可以沿连接线逻辑顺序执行节点的自定义功能。 运行时可通过jstat -l pid 查...

2019-07-30 19:15:14

阅读数 23

评论数 0

转载 java的class文件魔数和版本对应关系

使用十六进制编辑器打开class查看,CAFEBABE为class文件魔数,后面4个字节是版本号

2019-07-12 15:30:43

阅读数 20

评论数 0

原创 mysql存储过程迭代自己获取所有子孙

mysql函数无法迭代获取结果集,只能用存储过程的OUT类型输出参数来实现,迭代调用并select出OUT类型的参数值拼接起来。注意null和字符串拼接结果还是null要做ifnull处理。 DROP PROCEDURE F_GETSUBJOB; CREATE PROCEDURE F_GETS...

2019-07-04 22:04:35

阅读数 61

评论数 0

原创 使用ThreadLocal将int属性改为线程安全的AtomicInteger计数器

项目有个单例对象内部有个int属性作为计数器,之前的同事可能没有考虑到多线程安全问题,在多线程环境下该int属性的值完全乱了;但是该单例类已经到处使用了,代码不好动,只好使用ThreadLocal来修改了。 ThreadLocal是每个线程有一份独立的数据,也就不会有多线程并发的问题了。 首先...

2019-07-02 17:47:25

阅读数 65

评论数 0

原创 shell调用hive客户端导致nohup后台进程stopped

nohup启动java进程调用shell执行hive客户端命令导致nohup进程stopped,java进程消失了。 环境变量增加export HADOOP_CLIENT_OPTS="$HADOOP_CLIENT_OPTS -Djline.terminal=jline.Unsuppor...

2019-06-27 14:08:08

阅读数 76

评论数 0

原创 java的VIRT高的问题理解

java程序的VIRT很高10G以上,研究了网上文章得出结论:不影响也不会占用内存,不用管。 VIRT是虚拟的地址空间,在使用 mmap 并设置 MAP_NORESERVE 标志时并不会占用内存或交换区。通过pmap -x可以查看到anon分配的内存块,是glibc在版本 2.10 引入的 ar...

2019-06-06 11:09:59

阅读数 131

评论数 0

原创 oracle数据库inactive状态session过多的原因定位

新功能上线后,数据库告警,session连接接近最大值,有耗尽的风险。 开始定位解决这个风险问题,首先查看这些连接都在执行什么sql select sql_text,se.* from v$sql s, v$session se where se.prev_hash_value=s.hash_...

2019-05-30 19:32:05

阅读数 531

评论数 0

原创 提高编码效率的方法

进入心流的专注状态才能提高编码效率,最大的问题就是要屏蔽各种让人分心的打扰和提供顺手的工具: Alt+F11 把eclipse全屏 (不会被qq和浏览器提示打扰) 使用粘贴板增强工具ditto (顺手) 使用番茄工作法,拒绝各种打扰(在线看板和番茄工具https://kanbanflow.c...

2019-05-15 09:50:08

阅读数 53

评论数 0

原创 系统运行缓慢的问题定位步骤

首先 top查看cpu cpu高 top -Hp 查看进程下cpu高的线程 用户线程cpu高 jstack结合堆栈查看线程执行代码 gc线程cpu高 jmap dump:format=b,file= 导出系统当前的内存数据,结合代码定位 cpu低 接口调用耗时 --> 压测+...

2019-04-19 13:43:20

阅读数 161

评论数 0

原创 GC overhead limit exceeded

"GC overhead limit exceeded"表示JVM垃圾收集一直在运行导致应用运行缓慢。在垃圾收集后,如果Java进程花费大约超过98%的时间来进行GC且恢复不到2%的堆内存,就会抛出java.lang.OutOfMemoryError异常,一般是因为大量运行时数...

2019-04-19 10:11:33

阅读数 71

评论数 0

原创 jstack会导致JVM停顿

在一次频繁GC导致的cpu飙高(16个gc线程每个使用cpu100%,cpu使用1600%)的定位中发现每次jstack打印堆栈的时候cpu就会下降到100%(图中红色的深谷)。说明jstack命令会导致JVM停顿,16个gc线程肯定都停了,应该只有一个jstack相关的线程在工作。 红色是...

2019-04-07 03:34:10

阅读数 109

评论数 0

原创 java进程因机器内存不足被系统kill的定位

查看日志发现进程被killer了,history未发现kill记录,说明不是人工杀死。查看机器内存使用监控发现当时机器内存使用100%。怀疑是被系统杀死了,linux可以设置内存用尽时根据得分杀死一些进程的OOMkiller特性(损失最少的工作,释放最大的内存同时不伤及无辜的用了很大内存的进程,并...

2019-04-07 03:16:12

阅读数 181

评论数 0

转载 转一个高内存定位的文章

前一篇介绍了线上应用故障排查之一:高CPU占用,这篇主要分析高内存占用故障的排查。 搞Java开发的,经常会碰到下面两种异常: 1、java.lang.OutOfMemoryError: PermGen space 2、java.lang.OutOfMemoryError: Java hea...

2019-04-02 10:13:09

阅读数 51

评论数 0

原创 一次java线程死锁的定位

ETL流程卡死原因定位 一、现象:模板大量并发执行流程,经常流程节点脚本运行完成之后,卡死,不更新状态,不继续往下执行。查看日志未发现任何异常信息。 二、定位。 jps -ml查看进程号pid,然后jstack -l pid输出线程dump文件,分析发现有死锁。经过分析为模板并发流程更新节点...

2018-12-23 00:46:55

阅读数 74

评论数 0

原创 eclipse远程调试liunx下的tomcat

项目部署到远程服务器上出现问题又缺乏日志信息的时候,特别想使用eclipse来debug查看各种信息。只要在tomcat里设置下参数重启下tomcat,就可以使用eclipse远程debug定位问题了。(eclipse中的代码要和服务器上部署的代码一样,否则定位的行数不准) 步骤一、Tomcat...

2018-12-13 09:03:38

阅读数 53

评论数 0

原创 一次cpu占用高的定位分析

客户机器cpu占用较高甚至出现cpu打满的情况,造流程启动运行缓慢,状态更新卡死,严重影响用户体验。 首先观察用户机器资源情况,内存剩余40G,jvm内存占用10%不到。 jps -ml 拿到pid之后 jstat -gccause pid 发现频繁FGC,差不多一分种就有一次显示的Sy...

2018-12-08 02:42:10

阅读数 54

评论数 0

提示
确定要删除当前文章?
取消 删除