`
hrcdg
  • 浏览: 7407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

上线后系统时间不正确

 
阅读更多

最后都是通过修改tomcat的catalina.bat来做到的。

 

以下为参考材料

———————————————————————————————————— 

在“首选项- >Tomcat - >JVM Settings ”项,设定 JRE 的版本为“ jre1.5.0_06”,并且添加如下几个JVM Parameters :

         -Xms128m

         -Xmx512m

         -Dfile.encoding=UTF8

         -Duser.timezone=GMT+08

这是搜到的一种方法。

另一种方法是:

windows Xp pro service pack2 下Tomcat启动时间为GMT,比北京时间少8小时问题处理

机器系统为windows Xp professional service pack2
JDK版本为1.4.2_09
Tomcat版本为5.0.28
 
问题:用控制台启动tomcat,发现显示时间比北京时间少8小时,在通过WEB SERVICE接口与DELPHI通信中,因为时间少8小时导致通信出错.
分析:开始以为是TOMCAT设置时区未设置,不过TOMCAT好象不设置时区咯
第二步JDK上找原因,不过JDK是用native调用的JVM里的配置咯;
第三步JVM里的设置,java -Duser.timezone=Asia/Shanghai不起作用咯,继续找.*.*;
第四步猜想JVM应该是取的windows的时区设置,网上搜搜还真找到几个时区设置出错的情况(非JAVA咯);
第五步找了一台能正常设置时区windows注册表 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones],备份之,覆盖之.;
测试.通过.HOHO~~~~;
据偶理解(好象本来就是这样呼),由于Windows时区设置出错,导致JVM取不到系统设置的时区,JDK在读取时区的时候在取不到的情况下缺省的GMT,从而使Tomcat上显示的时候比北京时间少8小时;
 
然而,我是通过第一种方法解决的,但是,个人还是认为第二种方法的观点是正确的,而第一种方法只不过是在tomcat里打了个补丁。要是,按第二种方法修改了注册表,估计,也不用设置tomcat了。
 
--另外一位高手在linux下的问题

最近碰到一个很奇怪的问题,两台一模一样的机器,一样的时间,一样的时区,一样的tomcat,一样的代码。但是tomcat在两台机器上获取到的时间就是不一样,不仅不一样,其中一个的tomcat时间跟系统时间还不一致。

最开始试着通过修改catalina.sh把两个tomcat的时区都改为GMT,结果得到的时间还是不一样:

JAVA_OPTS="-mx1600M -Duser.timezone=GMT"

后来把tomcat的时区改为:

JAVA_OPTS="-mx1600M -Duser.timezone=Europe/London"

突然发现这个时候这台tomcat时间与系统时间一向不一致的机器,这个时候tomcat时间突然跟系统时间一致了,而另一台一直直一致的现在却不一致了(系统用的时区是BST,开始改GMT时区时没看出来)。

这个时候我才突然想到,tomcat读取的可能是硬件时间(BIOS时间),而这两台机器很有可能一台设置了使用UTC时间一台设置了不使用UTC时间。遂查看配置文件/etc/sysconfig/clock,果然如此。

修改成一致的设置,重启,果然正常了。

 

--附带jvm参数中文翻译

Java虚拟机(JVM)参数配置说明
 
在Java、J2EE大型应用中,JVM非标准参数的配置直接关系到整个系统的性能。
JVM非标准参数指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。但是在生产环境中,为了提高性能,往往需要调整这些参数,以求系统达到最佳新能。
另外这些参数的配置也是影响系统稳定性的一个重要因素,相信大多数Java开发人员都见过“OutOfMemory”类型的错误。呵呵,这其中很可能就是JVM参数配置不当或者就没有配置没意识到配置引起的。
 
为了说明这些参数,还需要说说JDK中的命令行工具一些知识做铺垫。
 
首先看如何获取这些命令配置信息说明:
假设你是windows平台,你安装了J2SDK,那么现在你从cmd控制台窗口进入J2SDK安装目录下的bin目录,然后运行java命令,出现如下结果,这些就是包括java.exe工具的和JVM的所有命令都在里面。
 
-----------------------------------------------------------------------
D:\j2sdk15\bin>java
Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
 
where options include:
    -client       to select the "client" VM
    -server       to select the "server" VM
    -hotspot      is a synonym for the "client" VM  [deprecated]
                  The default VM is client.
 
    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A ; separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose[:class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -jre-no-restrict-search
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                    see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
-----------------------------------------------------------------------
在控制台输出信息中,有个-X(注意是大写)的命令,这个正是查看JVM配置参数的命令。
 
其次,用java -X 命令查看JVM的配置说明:
运行后如下结果,这些就是配置JVM参数的秘密武器,这些信息都是英文的,为了方便阅读,我根据自己的理解翻译成中文了(不准确的地方还请各位博友斧正)
-----------------------------------------------------------------------
D:\j2sdk15\bin>java -X
    -Xmixed           mixed mode execution (default)
    -Xint             interpreted mode execution only
    -Xbootclasspath:<directories and zip/jar files separated by ;>
                      set search path for bootstrap classes and resources
    -Xbootclasspath/a:<directories and zip/jar files separated by ;>
                      append to end of bootstrap class path
    -Xbootclasspath/p:<directories and zip/jar files separated by ;>
                      prepend in front of bootstrap class path
    -Xnoclassgc       disable class garbage collection
    -Xincgc           enable incremental garbage collection
    -Xloggc:<file>    log GC status to a file with time stamps
    -Xbatch           disable background compilation
    -Xms<size>        set initial Java heap size
    -Xmx<size>        set maximum Java heap size
    -Xss<size>        set java thread stack size
    -Xprof            output cpu profiling data
    -Xfuture          enable strictest checks, anticipating future default
    -Xrs              reduce use of OS signals by Java/VM (see documentation)
    -Xcheck:jni       perform additional checks for JNI functions
    -Xshare:off       do not attempt to use shared class data
    -Xshare:auto      use shared class data if possible (default)
    -Xshare:on        require using shared class data, otherwise fail.
 
The -X options are non-standard and subject to change without notice.
-----------------------------------------------------------------------
 
JVM配置参数中文说明:
-----------------------------------------------------------------------
1、-Xmixed           mixed mode execution (default)
 混合模式执行
 
2、-Xint             interpreted mode execution only
 解释模式执行
 
3、-Xbootclasspath:<directories and zip/jar files separated by ;>
      set search path for bootstrap classes and resources
 设置zip/jar资源或者类(.class文件)存放目录路径
 
3、-Xbootclasspath/a:<directories and zip/jar files separated by ;>
      append to end of bootstrap class path
 追加zip/jar资源或者类(.class文件)存放目录路径
 
4、-Xbootclasspath/p:<directories and zip/jar files separated by ;>
      prepend in front of bootstrap class path
 预先加载zip/jar资源或者类(.class文件)存放目录路径
 
5、-Xnoclassgc       disable class garbage collection
 关闭类垃圾回收功能
 
6、-Xincgc           enable incremental garbage collection
 开启类的垃圾回收功能
 
7、-Xloggc:<file>    log GC status to a file with time stamps
 记录垃圾回日志到一个文件。
 
8、-Xbatch           disable background compilation
 关闭后台编译
 
9、-Xms<size>        set initial Java heap size
 设置JVM初始化堆内存大小
 
10、-Xmx<size>        set maximum Java heap size
 设置JVM最大的堆内存大小
 
11、-Xss<size>        set java thread stack size
 设置JVM栈内存大小
 
12、-Xprof            output cpu profiling data
 输入CPU概要表数据
 
13、-Xfuture          enable strictest checks, anticipating future default
 执行严格的代码检查,预测可能出现的情况
 
14、-Xrs              reduce use of OS signals by Java/VM (see documentation)
 通过JVM还原操作系统信号
 
15、-Xcheck:jni       perform additional checks for JNI functions
 对JNI函数执行检查
 
16、-Xshare:off       do not attempt to use shared class data
 尽可能不去使用共享类的数据
 
17、-Xshare:auto      use shared class data if possible (default)
 尽可能的使用共享类的数据
 
18、-Xshare:on       require using shared class data, otherwise fail.
 尽可能的使用共享类的数据,否则运行失败
 
The -X options are non-standard and subject to change without notice.
-----------------------------------------------------------------------
 
怎么用这这些参数呢?其实所有的命令行都是这么一用,下面我就给出一个最简单的HelloWorl的例子来演示这个参数的用法,非常的简单。
 
HelloWorld.java
-----------------------------------------------
public class  HelloWorld
{
 public static void main(String[] args)
 {
  System.out.println("Hello World!");
 }
}
 
编译并运行:
D:\j2sdk15\bin>javac HelloWorld.java
 
D:\j2sdk15\bin>java -Xms256M -Xmx512M HelloWorld
Hello World!
 
呵呵,这下满足了吧!
 
实践:在大型系统或者应用中配置JVM参数
比如你配置IDE工具的参数,常见的有IDEA、Eclipse,这个是在一个配置文件中指定即可。
如果你要在J2EE环境中配置这些参数,那么你需要在J2EE应用服务器或者Servlet容器相关启动参数设置处指定,其启动文件中来配置,Tomcat是在catalina.bat中配置,weblogic和websphere是在其他地方,具体我就说了,相信玩过的这些大型服务器的人都知道,没玩过的看看这篇文章,玩玩就知道了,呵呵。
 
另外常常有人问到jdk的一些相关命令用法,其实,当你看到这里的时候,你应该知道如何获取这些命令的用法了。如果你还不会,那么,建议你去学学DOS,我是没辙了。如果你会这些,还是没有看明白,那么你赶紧学学英语吧,这样你就能看懂了。
 
另外:我在最后给出常用的几个Java命令行说明,以供参考:
 
(1)、javac
用法:javac <选项> <源文件>
其中,可能的选项包括:
  -g                         生成所有调试信息
  -g:none                    不生成任何调试信息
  -g:{lines,vars,source}     只生成某些调试信息
  -nowarn                    不生成任何警告
  -verbose                   输出有关编译器正在执行的操作的消息
  -deprecation               输出使用已过时的 API 的源位置
  -classpath <路径>            指定查找用户类文件的位置
  -cp <路径>                   指定查找用户类文件的位置
  -sourcepath <路径>           指定查找输入源文件的位置
  -bootclasspath <路径>        覆盖引导类文件的位置
  -extdirs <目录>              覆盖安装的扩展目录的位置
  -endorseddirs <目录>         覆盖签名的标准路径的位置
  -d <目录>                    指定存放生成的类文件的位置
  -encoding <编码>             指定源文件使用的字符编码
  -source <版本>               提供与指定版本的源兼容性
  -target <版本>               生成特定 VM 版本的类文件
  -version                   版本信息
  -help                      输出标准选项的提要
  -X                         输出非标准选项的提要
  -J<标志>                     直接将 <标志> 传递给运行时系统
 
(2)、jar
用法:jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名 ...
选项:
    -c  创建新的存档
    -t  列出存档内容的列表
    -x  展开存档中的命名的(或所有的〕文件
    -u  更新已存在的存档
    -v  生成详细输出到标准输出上
    -f  指定存档文件名
    -m  包含来自标明文件的标明信息
    -0  只存储方式;未用ZIP压缩格式
    -M  不产生所有项的清单(manifest〕文件
    -i  为指定的jar文件产生索引信息
    -C  改变到指定的目录,并且包含下列文件:
如果一个文件名是一个目录,它将被递归处理。
清单(manifest〕文件名和存档文件名都需要被指定,按'm' 和 'f'标志指定的相同顺序。
 
示例1:将两个class文件存档到一个名为 'classes.jar' 的存档文件中:
       jar cvf classes.jar Foo.class Bar.class
示例2:用一个存在的清单(manifest)文件 'mymanifest' 将 foo/ 目录下的所有
           文件存档到一个名为 'classes.jar' 的存档文件中:
       jar cvfm classes.jar mymanifest -C foo/ .
 
(3)、javadoc
javadoc: 错误 - 未指定软件包或类。
用法:javadoc [选项] [软件包名称] [源文件] [@file]
-overview <文件>          读取 HTML 文件的概述文档
-public                   仅显示公共类和成员
-protected                显示受保护/公共类和成员(默认)
-package                  显示软件包/受保护/公共类和成员
-private                  显示所有类和成员
-help                     显示命令行选项并退出
-doclet <类>              通过替代 doclet 生成输出
-docletpath <路径>        指定查找 doclet 类文件的位置
-sourcepath <路径列表>    指定查找源文件的位置
-classpath <路径列表>     指定查找用户类文件的位置
-exclude <软件包列表>     指定要排除的软件包的列表
-subpackages <子软件包列表> 指定要递归装入的子软件包
-breakiterator            使用 BreakIterator 计算第 1 句
-bootclasspath <路径列表> 覆盖引导类加载器所装入的
                          类文件的位置
-source <版本>            提供与指定版本的源兼容性
-extdirs <目录列表>       覆盖安装的扩展目录的位置
-verbose                  输出有关 Javadoc 正在执行的操作的消息
-locale <名称>            要使用的语言环境,例如 en_US 或 en_US_WIN
-encoding <名称>          源文件编码名称
-quiet                    不显示状态消息
-J<标志>                  直接将 <标志> 传递给运行时系统
 
通过标准 doclet 提供:
-d <目录>                         输出文件的目标目录
-use                              创建类和软件包用法页面
-version                          包含 @version 段
-author                           包含 @author 段
-docfilessubdirs                  递归复制文档文件子目录
-splitindex                       将索引分为每个字母对应一个文件
-windowtitle <文本>               文档的浏览器窗口标题
-doctitle <html 代码>             包含概述页面的标题
-header <html 代码>               包含每个页面的页眉文本
-footer <html 代码>               包含每个页面的页脚文本
-bottom <html 代码>               包含每个页面的底部文本
-link <url>                       创建指向位于 <url> 的 javadoc 输出的链接
-linkoffline <url> <url2>         利用位于 <url2> 的软件包列表链接至位于 <url>
的文档
-excludedocfilessubdir <名称 1>:..排除带有给定名称的所有文档文件子目录。
-group <名称> <p1>:<p2>..         在概述页面中,将指定的软件包分组
-nocomment                        抑止描述和标记,只生成声明。
-nodeprecated                     不包含 @deprecated 信息
-noqualifier <名称 1>:<名称 2>:...从输出中排除限定符的列表。
-nosince                          不包含 @since 信息
-notimestamp                      不包含隐藏时间戳
-nodeprecatedlist                 不生成已过时的列表
-notree                           不生成类分层结构
-noindex                          不生成索引
-nohelp                           不生成帮助链接
-nonavbar                         不生成导航栏
-serialwarn                       生成有关 @serial 标记的警告
-tag <名称>:<位置>:<标题>         指定单个变量自定义标记
-taglet                           要注册的 Taglet 的全限定名称
-tagletpath                       Taglet 的路径
-charset <字符集>                 用于跨平台查看生成的文档的字符集。
-helpfile <文件>                  包含帮助链接所链接到的文件
-linksource                       以 HTML 格式生成源
-sourcetab <制表符长度>           指定源中每个制表符占据的空格数
-keywords                         使软件包、类和成员信息附带 HTML 元标记
-stylesheetfile <路径>            用于更改生成文档的样式的文件
-docencoding <名称>               输出编码名称
 
(4)、rmid
rmid: 非法选项:-?
用法:rmid <option>
 
其中,<option> 包括:
  -port <option>        指定供 rmid 使用的端口
  -log <directory>    指定 rmid 将日志写入的目录
  -stop               停止当前的 rmid 调用(对指定端口)
  -C<runtime 标记>    向每个子进程传递参数(激活组)
  -J<runtime 标记>    向 java 解释程序传递参数
分享到:
评论

相关推荐

    003基于java的网上报名系统SSM【毕设+源码】.rar

    一直以来,考试报名一直没有进行系统化的管理,学生无法准确掌握考试报名状态,由此提出开发网上报名系统,管理报名信息,学生可以在线查询报名状态,节省时间,提高效率。 本文介绍了使用Java技术开发网上报名系统...

    测试产品系统测试方案模版

    本文档旨在说明系统测试阶段任务、人员分配和时间安排、工作规范等。并且为测试人员提供系统功能和性能的测试指导。 1.2. 适用范围 本文档用于测试人员计划、组织和管理系统测试项目。 1.3. 术语与缩略语 按需填写。...

    基于企业考勤系统的毕业设计实现.zip

    企业考勤系统是一种管理和记录员工工作时间的软件系统,可以帮助企业管理员工的出勤情况,提高工作效率和管理水平。 在本次毕业设计中,我们将使用现代化的开发工具和技术来实现一套高效、稳定、易用的企业考勤系统...

    CAD图纸管理及批量打印系统

    长期以来,中小型制造企业如何管理海量的图文档是急需解决的问题,图纸绘制完成后整理、查找、打印耗费了大量时间。而大型的PDM需要花费大量的人力物力录入历史数据,上线时间长。本系统根据中小企业特点,采用停靠...

    毕业设计,户籍管理系统,Java完整源代码,内含毕业论文的设计与实现、毕业答辩PPT、MySql数据库脚本以及项目辅导视频

    户籍管理管理系统设计主要涵盖两方面的意义:户籍方面,系统上线可以给户籍在管理上带来方便,可以及时了解户籍的状况,有无迁入迁出户籍情况,缴费,欠缴等情况统计,极大的提高了员工的工作效率及准确性;...

    基地Javaweb实现户籍管理系统【源码+LW资料+PPT+讲解视频+数据库】

    户籍管理管理系统设计主要涵盖两方面的意义:户籍方面,系统上线可以给户籍在管理上带来方便,可以及时了解户籍的状况,有无迁入迁出户籍情况,缴费,欠缴等情况统计,极大的提高了员工的工作效率及准确性;...

    RX ERP软件生产管理系统

    还在为ERP软件实施难,价格贵而苦恼吗,我们将以最低的价格为您提供优质的ERP软件,RX ERP生产管理系统,信息集成度高,操作简洁易学,实施上线快,性价比最高,强大的生产管理,适合大众化需求,满足个性化要求,...

    “IE博士”工业工程软件介绍

    系统支持企业自定义标准,分析的数据会汇总后,可形成企业自己的标准时间库,同时根据企业的特点,也可以将时间与加工部件关联起来,制定出标准部件库,当有新产品上线时,可以直接根据产品的工艺流程计算得出相应的...

    新门店现场实施工作执行表.doc

    确认门店所用系统版本是否正确(服装和普通) RT/YH K3或者老系统和其他接口 A.K3新店相关设置。 YH B.老系统相关设置和脚本检查 YH C.YH卡,PDA YH 特殊业务,新功能 A.特殊业务模块脚本...

    【精品】沈阳桃仙国际机场-智慧机场解决方案.pdf

    年后一经上线,效果显著。该产品将现有值机柜台的“离港系统”和“行李磅秤系统”连接起来,使得离港系统可以自动读取磅秤中的旅客行李重量,并实时录入到值机界面,值机员无需核对磅秤显示重量、无需手工输入,操作...

    白金远控2009年可用版

    1.*重新设计TCP保活和心跳,不会再出现特殊情况机子上上下下的问题,解决机器太多时可能频繁上下线不能正常上线的问题, 同时优化删除重复的无效连接的速度。 2.解决由于壳的原因,在某些AMD的CPU上不能打开控制端...

    竞价系统培训教程.doc

    也有很多都被K号了,GGK号 太厉害了,所以我不做,而且GG的收款周期长,很严格,一点无效点击就会被K,有很多 新人刚开始都会选择做GG,因为他的上线可以帮助他 ,做网络有人带是很好的,如果没有很好的老师,你就像...

    第五媒体数字杂志系统1.02build070201版

    2006年年初,短短两个月不到的时间里,国内20多家大型数字杂志发行平台蜂拥上线。Acer、联想、IDG、凯雷等风投纷纷出手,在数字杂志上砸进十几个亿。电子杂志、互动杂志、数字杂志、数码杂志、网络杂志、多媒体杂志...

    B2Bbuilder行业网站英文系统最新版

    缓存机制 由于系统为了提高网站访问速度,应对大的访问量,采用了多种缓存机制,可以设定各种缓存时间及清空缓存。 在线支付交易 集成整合了支付宝、财付通、 paypal网银等众多流行的在线支付工具.仿敦煌网的模式,...

    服务器虚拟化部署方案教程文件.doc

    3 服务器虚拟化设计 通过服务器虚拟化技术可以在一台物理服务器上创建多个不同的虚拟机,可以部署不 同的操作系统,部署不同的业务应用,每个虚拟机之间相互隔离。当用户有新增的业务 需求时,无需再去采购新的硬件...

    服务器虚拟化部署方案.doc

    3 服务器虚拟化设计 通过服务器虚拟化技术可以在一台物理服务器上创建多个不同的虚拟机,可以部署不 同的操作系统,部署不同的业务应用,每个虚拟机之间相互隔离。当用户有新增的业务 需求时,无需再去采购新的硬件...

    服务器虚拟化部署方案(1).doc

    当用户有新增的 业务需求时,无需再去采购新的硬件,只需要在某一台物理机上创建一个虚拟机,分配 其所需的硬件资源即可,然后利用虚拟机模板进行操作系统部署,新的业务应用上线只 需要约10分钟左右。 虚拟化的建设...

    服务器虚拟化部署方案(2).doc

    当用户有新增的 业务需求时,无需再去采购新的硬件,只需要在某一台物理机上创建一个虚拟机,分配 其所需的硬件资源即可,然后利用虚拟机模板进行操作系统部署,新的业务应用上线只 需要约10分钟左右。 虚拟化的建设...

    易孚网站系统(EIFR Site)简体中文版

    ·支持广告上线和下线时间设置; &lt;br/&gt;友情链接 ·支持链接页面板块放置; &lt;br/&gt;评论模块 ·可以对任意频道和模块里的任意内容附加评论,游客回复等; &lt;br/&gt;EIFR 采用了模块化开发...

    基于SpringBoot开发的校园快递管理系统源码+详细部署说明(课程设计).zip

    导致结果不正确。 打包上线 1. 配置环境变量 JASYPT_PASSWORD=[密钥] export JASYPT_PASSWORD 2. java -jar [jar包] --server.port=[端口] --jasypt.encryptor.password=${JASYPT_PASSWORD} 请求响应类型 ...

Global site tag (gtag.js) - Google Analytics