系统偶尔出现column XX does not exist异常,需重启应用才能恢复

若_离 2016-03-08 04:24:41
加精
系统现在遇到一个BUG无处下手:在运行一段时间后,会出现 column XX does not exist at character 这样的异常,而这个字段一般来说都是外键,重启应用就恢复了(在我迁移系统和数据库后才发生)

首先这个字段一定是存在的,系统大概在运行一周后开始偶尔出现这个问题,比如一个查询功能,连续刷新10几次,可能就会出现2到3次这个错误,用的时间越长,出现的频率也越高了,这个错误日志在postgres数据库日志中也能看到,但是我直接把SQL复制到客户端运行,不管怎么样都不会报错,于是我试着重启了数据库,问题依旧没有解决,这是否说明不是数据库的问题呢(从本机连数据库也不会报错)?

重启应用,问题立马解决,但是应用的问题,为什么会直接导致数据库执行查询时提示存在的字段找不到呢?

我系统用的是spring mvc + hibernate,最开始用的是oracle数据库,后来数据库和应用都迁移到我租的一台云主机上面去,因为没有oracle数据库,所以我选了一个类似的postgres,把数据迁移过去并修改相关应用

在我搬迁应用和数据库之前,系统运行了大概1年,从未出现过这个问题,搬迁后大概1周就出现一次,数据库在迁移过程中有出现过卡死不动的情况(客户端导入的),但是我最后检查数据并未缺失.

云主机比较差,只有4G内存,8核CPU,安装了postgres,mysql,svn,apache,tomcat,php,sftp,大概这些软件

但是出问题的时候,并没有看到程序占了很大的内存,cpu也正常

现在这个问题感觉根本无处下手,不知道从哪去看问题,有没有高手遇到过这种情况?或者麻烦大神门给个排查的方向,我现在只能晚上偷偷摸摸重启下应用了


ERROR: column merchantlo0_.channels does not exist at character 441,这个是数据库的错误日志 Caused by: org.postgresql.util.PSQLException: ERROR: column merchantlo0_.channels does not exist Position: 441,这个是应用的日志 其实错误信息就这一句话,程序就是简单的一个HQL查询语句,大部分时候正常不会报错,偶尔出错,同样的SQL,所以我才觉得问题太诡异,channels 是这张表的一个外键
...全文
3623 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
豪饮阔乐 2018-12-24
  • 打赏
  • 举报
回复
merchantlo0里面真有channels么,是不是没报错的访问的是其他merchantlo?不是0
Mr_tao888 2017-11-01
  • 打赏
  • 举报
回复
清理下电脑缓存试试?
weixin_37776332 2017-10-25
  • 打赏
  • 举报
回复
请问问题解决了吗,我也出现了类似这种情况
  • 打赏
  • 举报
回复
或者那句hql
  • 打赏
  • 举报
回复
能知道是那段java代码执行的错误么
若_离 2016-03-08
  • 打赏
  • 举报
回复
都没人遇到过么...给个排查的建议也行

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧