开发者社区 > 云原生 > 中间件 > 正文

seata起不来了,HOUR_OF_DAY: 2 -> 3,这个问题有遇到过的朋友吗?

01:31:05.738 INFO --- [ main] io.seata.server.Server : The server is running in container. 01:31:05.758 INFO --- [ main] io.seata.config.FileConfiguration : The file name of the operation is registry 01:31:05.761 INFO --- [ main] io.seata.config.FileConfiguration : The configuration file used is /seata-server/resources/registry.conf 01:31:05.884 INFO --- [ main] io.seata.config.FileConfiguration : The file name of the operation is file.conf 01:31:05.885 INFO --- [ main] io.seata.config.FileConfiguration : The configuration file used is file.conf 01:31:07.024 INFO --- [ main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited Exception in thread "main" io.seata.common.exception.DataAccessException: HOUR_OF_DAY: 2 -> 3 at io.seata.server.storage.db.store.LogStoreDataBaseDAO.queryGlobalTransactionDO(LogStoreDataBaseDAO.java:182) at io.seata.server.storage.db.store.DataBaseTransactionStoreManager.readSession(DataBaseTransactionStoreManager.java:182) at io.seata.server.storage.db.store.DataBaseTransactionStoreManager.readSession(DataBaseTransactionStoreManager.java:212) at io.seata.server.storage.db.session.DataBaseSessionManager.findGlobalSessions(DataBaseSessionManager.java:188) at io.seata.server.storage.db.session.DataBaseSessionManager.allSessions(DataBaseSessionManager.java:177) at io.seata.server.session.SessionHolder.reload(SessionHolder.java:136) at io.seata.server.session.SessionHolder.init(SessionHolder.java:123) at io.seata.server.Server.main(Server.java:84) Caused by: java.sql.SQLException: HOUR_OF_DAY: 2 -> 3 seata起不来了,HOUR_OF_DAY: 2 -> 3,这个问题有遇到过的朋友吗?

展开
收起
cuicuicuic 2023-03-27 12:30:38 452 0
5 条回答
写回答
取消 提交回答
  • 日志信息来看,Seata 服务器在启动时遇到了 DataAccessException,这个异常是在尝试查询全局事务时抛出的。异常信息 "HOUR_OF_DAY: 2 -> 3" 指的是小时字段的值从 2 变成了 3,这通常与时间相关的操作有关,尤其是涉及时区转换或夏令时调整时。

    可能原因是服务器和数据库使用了不同的时区设置,或者数据库驱动在处理时间时遇到了时区转换问题。

    2023-12-23 17:53:56
    赞同 1 展开评论 打赏
  • 这是一个美国夏令时引起的问题,美国夏令时一般在3月第二个周日凌晨2点(当地时间)开始,将时钟调到3点,拨快1小时,而在11月第一个周日凌晨2点(当地时间)夏令时结束,要将时钟调到1点,拨慢1小时,所以 CST:
    没有 2020-03-08 02:00:00~2020-03-08 03:00:00 区间的时间
    有两个 2020-11-01 01:00:00~2020-11-01 02:00:00 区间的时间,
    所以你这个bug的出现是因为在CST中出现了不存在这个时区的时间,解决这个问题可以在数据库连接或者数据库设置中指定时区

    2023-12-20 11:03:06
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    数据库查询中的 HOUR_OF_DAY: 2 -> 3 导致的。这可能是一个 SQL 查询中的语法错误,或者是数据库不支持 HOUR_OF_DAY 列的转换。
    建议您检查一下相关 SQL 查询语句,确保语法正确,同时检查数据库是否支持 HOUR_OF_DAY 列的转换。

    2023-12-19 20:09:43
    赞同 展开评论 打赏
  • 你提到的“HOUR_OF_DAY: 2 -> 3”似乎是在描述一个时间格式的问题。在Java的java.time.format.DateTimeFormatter中,HOUR_OF_DAY是一个常量,用于表示24小时制的小时。如果你尝试将这个常量从2更改为3,这可能是一个错误,因为小时的范围是0到23。

    如果“seata起不来了”是因为这个错误导致的,你可能需要检查你的代码或配置,确保小时值的范围是正确的。

    2023-12-14 17:17:20
    赞同 展开评论 打赏
  • 这个问题可能是由于数据库的时区设置不正确导致的。你可以尝试在连接数据库时,设置正确的时区。

    2023-12-12 09:13:07
    赞同 展开评论 打赏
问答标签:
问答地址:

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
《Seata 1.3 新特性以及如何参与社区》 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载