Chinaunix首页 | 论坛 | 博客
  • 博客访问: 445427
  • 博文数量: 243
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 493
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-12 21:53
个人简介

系统未建立

文章分类

全部博文(243)

文章存档

2019年(5)

2018年(3)

2017年(44)

2016年(75)

2015年(52)

2014年(63)

2013年(1)

我的朋友

分类: 嵌入式

2017-09-30 13:41:51

最近遇到一个第三方插件工作在自己交叉编译的Java环境里面,周期性工作不对的问题,而在其他的环境下工作是好的。
最早在交叉编译部署时,就遇到了提示:
OpenJDK 64-Bit Server VM warning: No monotonic clock was available - timed services may be adversely affected
不同虚拟机,冒号前的内差异可以忽略。
看这句提示的意思是没有可用的单调时钟,基于时间的服务可能会受影响。
而我们的问题就是系统时间改变时,插件工作的周期性就错误。关联度极高。
怀疑有2个方面的原因,

一个是工具链本身不支持MONOTONIC时间(编写测试程序,确认没有问题);

一个是虚拟机本身有些问题。(顺着这个log出发,查找根源,看源代码,原来hotspot是依赖librt.so这个库)

将工具链中这个librt.so放到系统中后,java启动没有这个提示了,第三方插件也不会受时间调整而频繁上报了。

所以,遇到可疑的提示,还是尽早分析原因,以免后续的工作受影响。再就是要勇于追踪相关的源码,有时,这是解决问题的快速方法。
后来,就搜索了Java的时间使用,又一片文章不错
http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed19fa950d100b9c250e54f730628c9b5223c3933fc239045c1426a5e0767c4745cec179650ba45d19b7b0607d6b5e37b7ea97d51680fdcf7474d93034014dd81c438a0eafba03768037902bbaeb4abce4a362cdf9c5d3ae4353bc44050bc6abd40d5603ca1eb14371a7fdc81f544810cbb2632ee8590679c83440c714afa4652e46d6a8964b4cb279843546c6e962e6&p=9b759a46d7c50bf00aafd02d02148d&newp=882a9644d0d218e80be2966f1600bb231610db2151d6d4136b82c825d7331b001c3bbfb42324140fd1c57c6300a44d5bebf13c7837092ba3dda5c91d9fb4c57479997e73&user=baidu&fm=sc&query=No+monotonic+clock+was+available+%2D+timed+services+may+be+adversely+affected&qid=8f37a3f500041023&p1=1

阅读(341) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册