一台测试服务器上的Tomcat进程经常莫名挂掉,无任何异常信息。
因为之前有killall java的先例,就按这个思路查,未果。
后来发现上面别的Tomcat正常,怀疑是应用本身的问题。
于是,加上gc日志,等待下一次的挂掉。

- 阅读剩余部分 -

有一台服务器,连续几次出现问题,表象如下:
1、ssh上去,不管输入什么命令,全是同一个错误提示
[code]
-bash: fork: Cannot allocate memory
[/code]
2、偶尔可以成功执行命令,free -m的结果如下,free的内存还是很充裕的,8G
[code]
total used free shared buffers cached
Mem: 15949 1069 8880 0 67 6359
-/+ buffers/cache: 642 15307
Swap: 999 0 999
[/code]
3、Java Application的日志中有大量的OutOfMemoryError
[code]
java.lang.OutOfMemoryError: unable to create new native thread
at java.lang.Thread.start0(Native Method)
at java.lang.Thread.start(Thread.java:597)
[/code]

- 阅读剩余部分 -

没想到自己会有用Python写东东的时候,记一下这次碰到的几个简单的用法,备忘
基本规则:
别的语言中的{}代码块,用制表符(\t)也就是缩进取代
句末的结束符;可有可无

1、字符串拼串
[code]
a = "xx"
b = "xxx"
c = "xxxx"
xxx = ("aaa %s bbb %s ccc %s" % (a,b,c))
[/code]

- 阅读剩余部分 -

一个困扰很久的问题,服务启动后,就抛这个异常,异常栈只有这么多
[code]
2014-02-20-01:15:29,002 ERROR - Error while calling watcher
java.lang.NullPointerException
at org.apache.zookeeper.ClientCnxn$EventThread.processEvent(ClientCnxn.java:519)
at org.apache.zookeeper.ClientCnxn$EventThread.run(ClientCnxn.java:495)
[/code]
使用的zkclient版本是3.4.5
[code]
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.5</version>
</dependency>
[/code]
当时没发现对业务有什么影响,就放着没管,今天找机会挖了一下。

- 阅读剩余部分 -

看到一个大佬提供的计算两点间距离的方法,有一个比较生的用法
[code]
double xxx = Double.NaN;
if (xxx == Double.NaN) {
xxx = 0;
}
System.out.print(xxx);
[/code]
测试结果:输出是NaN
查了一个这个神奇的NaN,发现这个大佬用错了,Double.NaN只有一个特点,就是跟谁都不相等,包括它自己。

- 阅读剩余部分 -

今天发现另一种没注意到的空指针异常,加上之前碰到的,简单总结一下。

本次的问题,直接上示例代码
[code]
public static void main(String[] args) {
User u = null;
System.out.println("用户编号:" + u == null ? "无" : u.getUserId());
}

public static class User {

private int userId;

public int getUserId() {
return userId;
}
}
[/code]
这个代码看起来好像没问题,实际上报空指针异常。

- 阅读剩余部分 -