修改服務器時間導致程序卡頓

 

原因:SimpleTimestamper.next函數的循環無法滿足退出條件

表現:

  1. CPU使用率飆升,可達100%
  2. 存在數據查詢的界面或操作無數據展示

前提條件:

  1. 使用到了Hibernate框架
  2. 系統運行過程中調整時間。如web程序,調整時間後再調用其的獲取數據的接口或刷新界面

復現方式:

  1. 將時間往前調整,如14:30->2:30,時間差越久,越不容易恢復,時間差短卡一會就好了

           linux修改時間方式

date -s "2012-05-18 04:53:00"

          windows修改時間方式

time 11:00:00

解決方式:

  1. 重啓
  2. 恢復被調整的時間

相關堆棧:

 org.hibernate.cache.spi.support.SimpleTimestamper.next(SimpleTimestamper.java:38) at     org.hibernate.cache.spi.AbstractRegionFactory.nextTimestamp(AbstractRegionFactory.java:150) at      org.hibernate.cache.spi.AbstractCacheTransactionSynchronization.<init>(AbstractCacheTransactionSynchronization.java:19) at      org.hibernate.cache.spi.StandardCacheTransactionSynchronization.<init>(StandardCacheTransactionSynchronization.java:14) at       org.hibernate.cache.spi.AbstractRegionFactory.createTransactionContext(AbstractRegionFactory.java:145)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章