您的当前位置:首页正文

Java日志时间与Linux系统时间相差一小时解决方案

来源:个人技术集锦
Java日志时间与Linux系统时间相差一小时解决方案

一、 分析

2007年10月分,夏令时曾经做更改,2007年与之前发布的jdk版本均有此问题,2007年后发布的jdk版本不会出现此bug。一线版本jdk为1.5是 2004年发布

在10.78.228.102上已测试通过,时区更新工具在文档的最后。

参考资料:http://www.oracle.com/cn/technologies/java/tzupdater-readme-136440.html 时区更新下载:http://www.oracle.com/technetwork/java/javase/downloads/tzupdater-download-513681.html 二、 描述

模拟一线的情况成功,与一线的情况相同,在入夏令时和出夏令时会出现时间不能自动调整的问题。 三、 解决步骤 1、修改时区文件

使用root用户更改 /etc/sysconfig/clock TIMEZONE=\"Asia/Tehran\" UTC=\"yes\"

DEFAULT_TIMEZONE=\"Asia/Tehran\"

文件描述:TIMEZONE=\"Asia/Tehran\" 表示时区设置为Iran的时区

UTC=\"yes\" 表示启用UTC时间,这样jdk才可以从系统获取正确的时间,必须启用 DEFAULT_TIMEZONE=\"Asia/Tehran\" 默认时区

2、更新jdk时区信息 使用tzupdate.jar 更新jdk的时区信息,注意此时必须要停止所有可能使用jdk的进程,否则会导致升级失败,建议重启系统后升级,保证升级成功

1、下载tzupdate.jar到系统中 2、解压tzupdate.jar unzip tzupdater-1_3_42-2011k.zip 3、验证版本信息(注意大小写) java -jar tzupdate.jar –V 如果输出:The Java runtime doesn''t have time zone data (zi directory). 或者

tzupdater version 1.3.42-b02

JRE time zone data version: tzdata2005i

Embedded time zone data version: tzdata2011k

JRE time zone data 的版本是2007以前的,则表示时区信息没有升级到最新,可以继续升级操作 4、升级jdk时区信息 java -jar tzupdate.jar –u 没有任何输出则升级成功 5、测试升级是否成功,无任何输出则升级成功 java -jar tzupdate.jar –t

没有任何输出,则zone data文件验证通过 6、可检查升级后时区版本 java -jar tzupdate.jar –V 输出

tzupdater version 1.3.42-b02

JRE time zone data version: tzdata2011k

Embedded time zone data version: tzdata2011k 则表示升级成功。

3.保证以上步骤没有错误后,调整系统时间,重启操作系统,启动MOS5200系统。检查日志是否与操作系统时间一致。如果时间一致,升级成功。

升级碰到的一些问题

1. 升级后验证版本时输出 tzupdater version 1.3.42-b02

JRE time zone data version: tzdata2005i

There's no tzdata available for this Java runtime. 而前面操作没有报错,这是因为你的jdk还有进程在访问,导致升级失败,重启操作系统后执行之前操作就可以升级成功了。 2. 升级后系统时间跟日志时间相差3:30

因为jdk没有获取到正确的时区信息,给jboss的启动文件/opt/netwatcher/pm4h2/app/opt/jboss-report/bin/run.sh中添加启动参数 set JAVA_OPTS=%JAVA_OPTS% -Dprogram.name=%PROGNAME% -Duser.timezone=Asia/Tehran

具体位置加在62行左右,不能再if分支里,保证run.sh一定会执行这句。

重启web容器后就可以获取到正确时区,日志时间会跟随夏令时一起跳变。

3. 测试时输出

The Java runtime doesn''t have time zone data (zi directory). 表示没有升级上去。

因篇幅问题不能全部显示,请点此查看更多更全内容