记录贴:日常问题

记录贴:日常问题


1.应用 jar 冲突
    log4j冲突导致,应用报错。类型转换冲突。
    需求:定位某个类实际从那个jar加载 ? -verbose:class 参数(或者 
-XX:+TraceClassLoading),详细的记录了加载了那些类、从那个jar加载。

参见: http://agapple.iteye.com/blog/946603

2.性能测试过程
   linux有什么命令、或软件,可以同时收集cpu、load、上下文切换、mem、网络IO、磁盘IO等数据吗 ?
   vmstat 含义详解 ? ->  图形化报表 (痛苦的是要'人工'看着记录数据,这简直是程序员的污点呀)
   (vmstat的IO统计的是块设备(如磁盘)的数据,网卡没有对应的设备文件( http://oss.org.cn/kernel-book/ch11/11.2.3.htm),网络IO统计使用iftop) 
   vmstat  http://linux.about.com/library/cmd/blcmdl8_vmstat.htm

3.Jboss启动错误 
java.sql.SQLException: Table already exists: JMS_MESSAGES in statement [CREATE CACHED TABLE JMS_MESSAGES]
参见:http://dinghaoliang.blog.163.com/blog/static/126540714201082764733272/
%jboss_home%/server/default/deploy/hsqldb-ds.xml这个文件中有一个DefaultDS数据源配置,临时解决删除hsqldb-ds.xml文件。原因未知。

4.logback 0.9.19 版本,引入<encoder>,放弃 <appender><layout></appenader>
         < encoder >
            
< pattern >% m % n </ pattern >
            
< charset  class = " java.nio.charset.Charset " > UTF - 8 </ charset >
        
</ encoder >

源码:OutputStreamAppender.java
  protected void writeOut(E event) throws IOException {
    this.encoder.doEncode(event);
  }
对日志文件charset指定,经过debug调试,必须通过此方式配置才有效。否则取系统默认编码。

5.设置linux系统编码
http://linux.vbird.org/linux_basic/0320bash.php#variable_locale
其实‘系统编码’设置,即设置对应的系统变量,则所有可设置系统变量的文件都可设置编码,export使其生效
locale 查看当前用户使用的编码(),locale -a 查看机器所支持的所有编码
默认设置:
  a、系统级别  /etc/profile -> /etc/sysconfig/i18n,设置 LANG (无效显示export生效)(YY:i18n有个LANGUAGE设定,不知其含义,删除无影响)
  b、用户级别 ~/bash_rc、~/bash_profile、~/bash_login、~/profile,读取有限顺序:从左向右;必须显示export生效
  
http://linux.vbird.org/linux_basic/0320bash.php#settings_bashrc

設定 LANG 或者是 LC_ALL 時,則其他的語系變數就會被這兩個變數所取代。总之一句话:在当前用户设置LANG,是最优方案。

你可能感兴趣的:(记录贴:日常问题)