项目上线后遇到的问题总结

     项目上线了,一堆堆的问题也随之出现了。除了时间比较匆忙导致没有细致的做验证之外,当初也确实没有在最重要的功能需求上把好关,导致后来要做很多的修改而弥补之前的错误。下面是上线后遇到的问题和解决办法总结。

问题一:(用户非正常流程导致的错误)

用户注册一半就退出来,导致再次注册不成功或者用证件号登陆触发空指针异常。

解决办法:

一旦输入证件号时,检查数据库的表是否有相应的证件号记录,有则把相关记录全部删掉,从而让他成功注册。空指针异常的解决办法,做非空验证的判断。

问题二:(并发插入,流水号不一致)

   出现大量的主键唯一约束错误,后来想到是产生的预报名号不同步,导致有可能大并发量时产生多个相同的流水号,插入就会出现主键唯一约束错误。

   解决办法:

在数据库里写一个insert的触发器。自动替换掉要插入的主键为 max(key)+1.

问题三:(并发删除,索引失效)

   出现某些表的索引失效,后来发现是插入相同主键多次之后导致表失效。

  解决办法:

   设定oracle任务,让数据库每隔12个小时自动重建所有索引。

问题四:(js代码的不细致)

   发现报考志愿显示的专业比原来的少一个。

  解决办法:

   发现时jsp页面的js少循环一个=号导致的。。。。

问题五:(数据库的关键表设计有问题)

院校专业表设计的有问题,导致不能唯一确定一条记录,而产生一个考生可以插入4所学校以上的记录,而导致打印的时候有可能显示的不正常。

解决办法:应该把考生院校专业表设计成以下这样就能唯一确定记录,牺牲空间来换取简便。

Ks_H  yx_h  zy1_h  zy2_h  zy3_h  zy4_h

同理,把考生院校表可以设计成以下这样子也能唯一确定记录:

Ks_H  yx1_h  yx2_h  yx3_h  yx4_h

  

临时解决办法:

因为查询出来的记录不唯一,所有全部排序各个字段以保证查询出来的序列是固定的,再放进hashmap里确保得到唯一记录,再去显示和进行插入操作。

问题六:(页面和后台代码太不通用)

    用户需求一旦更改或者程序逻辑有错误后,导致要修改很多页面和后台代码,十分不通用,要从业务逻辑上设计的通用点。改一个,就能等同于改全部。用一些设计模式去解决。

猜你喜欢

转载自blog.csdn.net/kojhliang/article/details/7316358
今日推荐