关闭

Ant: Class not found: javac1.8

ant版本 1.8.3,jdk版本1.8.0_101 在ant时报了这个错,在网上搜都让升级ant到1.9以上配套jdk8即可。实际上我们由于是从jdk6升级到jdk8,所以当时有另一种解决方式,指定compiler="javac1.6" <javac source="${javac.source}" srcdir="${src}" ...
阅读(39) 评论(0)

线程未设置daemon导致shutdown无法及时退出

某次停止tomcat后,使用jps查看进程依然存在;直接jstack查看目前后台的哪些进程还在运行,发现main线程已经没有了,说明main线程已经执行完毕,我们自己的线程依旧存在,如:CONFIG-WATCHER。      那在什么情况下,会主线程运行完了,虚拟机还没退出呢? 参考 https://stackoverflow.com/questions/7416018/when-does-...
阅读(64) 评论(0)

使用TCP同时进行上传和下载的吞吐量为什么比单独进行时要低

TCP的发包一般是由收到TCP ACK触发的,没有收到TCP ACK时TCP发送端一般是不会发包的(超时重传的情况除外)。 下面示意图就是在描述:没有收到接收端发来的TCP ACK包时,发送端停止发送数据包。 左边是接收端,右边是发送端,-号表示发送端待发的数据包,=号是TCP ACK。     | ---- ----     | 假设有8个包要发送 ---- | ----...
阅读(80) 评论(0)

LineIterator中文乱码问题

业务中某功能最开始是用文件读取,类似如下 RandomAccessFile raf = new RandomAccessFile(new File("daily.log"), "rw"); String line = null; StringBuffer sb = new StringBuffer(); while((line =...
阅读(171) 评论(0)

无界队列导致内存耗尽问题一例

某个边缘的功能,需要将某些数据存入数据库,由于功能边缘且数据较少,存入频率为5秒保存一次,一次保存10条;保存的数据用Vector保存,往集合里放,正常情况下量极少也没出问题。 然后在某一天,突然发现服务容灾状态了,根据经验,不是数据库挂了就是后端某应用挂了,查看日志,发现是这个数据量过多,结果数据入库又这么慢,于是内存就爆的了 怎么解决? 1.队列别光加入,超过10000时放弃,以...
阅读(123) 评论(0)

tomcat connectionTimeout 问题

问题现象 在某个时刻,后端收到了平时4-6倍的请求(保密起见,略去产品和事件),在10分钟后居然没有请求可以接进来 问题原因 经过分析,首先,是后端服务器的线程池满了,线程池满的原因: 1.server.xml中maxThread=512,导致超过512的之后的请求只能排队,等待有线程释放后,才能被处理; 2.connectionTimeout配置为10000,这个配置导致建立一个soc...
阅读(666) 评论(3)

vsftpd版本引起的下载失败

问题背景:应用启动时去某机器上下载文件,但是其中某一台总是下载失败,但是手动是可以的 问题过程:首先,我们怀疑是vsftpd配置问题,比如主被动模式配置错误,发现ftp都是vsftpd的独立模式模式,没有用xinetd代理,而且模式都是一致,那为什么会有的机器行,有的机器不行呢?添加jsp模拟下载,类似如下代码(使用的ftp类来自于commons-net-3.1.jar) FT...
阅读(107) 评论(0)

修改.cshrc导致无法进入用户一例

某同事新建了用户,在修改.cshrc并source后退出当前用户,而且无法再通过su -切换过去;     首先,查看用户shell cat /etc/passwd |grep xx     发现用户是cshrc,于是查看用户家目录下的的.cshrc文件,最后有一行 source ${HOME}/.cshrc     于是清楚了,su - xx的时候会自动运行source .cshrc,...
阅读(137) 评论(0)

LD_LIBRARY_PATH设置不当导致的自动安装失败

问题现象 某天自动安装的时候,发现安装出错,最后定位到是自动安装脚本执行时会有如下报错 ./cfg_utility: error while loading shared libraries: libxerces-c.so.26: cannot open shared object file: No such file or directory我们自动安装时会修改xml中配置项,因为在安装脚本...
阅读(143) 评论(0)

SHELL脚本并发问题一则记录

问题背景 使用自动安装框架进行业务安装,调用SHELL脚本来修改权限等操作,包括修改server.xml配置等信息,某天两个安装任务一起运行时,发现密码字段为空,单独运行命令或单个安装任务则不会出现问题。 问题原因 SHELL代码出问题段代码类似如下逻辑: passwd="" passwd=`encrypt xxx` modXmlPasswd $passwd 在第一个任务跑完第二行时,第...
阅读(114) 评论(0)

400 Bad request 一例

某次定位请求,发现400 bad request,抓包发现请求头如下 POST /xx/xx/user/default/subscribe HTTP/1.1 Authorization: xx Host: http://100.40.205.122:8080 Content-Type: application/json;charset=utf-8 Content-Length: 248...
阅读(318) 评论(0)

JDK1.6在SUSE11下问题跳变定时任务失效问题记录

问题现象:使用ScheduleExecutorService部署定时任务,在时间向过去跳变比如当前11点跳变为10点后,定时任务突然失效,然后再次到11点时所有积压的定时任务(10-11点)一起执行,可能导致业务压力过大 问题原因:POSIX提供的标准计时器API进行封装,主要提供了两种类型的时钟的封装:CLOCK_REALTIME和CLOCK_MONOTONIC,第一种绝对时间,第二种是相对时...
阅读(365) 评论(1)

tomcat keepAliveTimeout=0问题

最近升级了tomcat上线,之后几天服务端句柄很高,定位后发现是应用服务上有很多连接,但是实际没有这么多用户在线,在测试环境上重现,抓包发现在keepAliveTimeout=0的情况下,是客户端发起FIN包,而改为2000之后,则是服务端发FIN包,参考https://tomcat.apache.org/tomcat-7.0-doc/config/http.html,keepAliveTimeo...
阅读(1577) 评论(1)

CAS锁为什么是乐观锁呢

参考AtomicInteger类如下方法 public final int incrementAndGet() { for (;;) { int current = get();//1 int next = current + 1;//2 if (compareAndSet(current, next...
阅读(223) 评论(0)

java字符串拼接小结

早期的版本中,字符串拼接是会在常量区创建对象的,比如如下代码 String str1 = "tom"; String str2 = "cat"; String str5 = str1 + str2;第三行是会在常量区创建一个String对象tomcat的,所以不少编程规范都会说不要直接用加号去拼接字符串,因为老是去常量区创建对象的话,开销也不小,而...
阅读(221) 评论(0)
140条 共10页1 2 3 4 5 ... 下一页 尾页
    个人资料
    • 访问:397122次
    • 积分:4545
    • 等级:
    • 排名:第7150名
    • 原创:126篇
    • 转载:14篇
    • 译文:0篇
    • 评论:118条
    最新评论