100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 终于搞定被客户投诉的问题

终于搞定被客户投诉的问题

时间:2019-02-07 17:04:02

相关推荐

终于搞定被客户投诉的问题

之前在用户有新需求的情况下,改了不少代码,最后升级上去,一个月后,进行月度检查时,发现有一半部分数据并没有插入数据库。说道这里你可能有点晕了,我解释解释。

整个结构分为总循环控制程序,出账程序,包括预处理,批价等,还有入库程序。共有4个进程,同时在跑。当用户订购时,会产生原始话单,然后进行批价,批价会生成账单,这个用于扣帐,还有会生成导入数据库的话单,方便用户对账。

control-----------启动------------->price-----------结束有文件产生时---------------->loadDatabase

当时我更新了批价程序,然后现场单机服务器变成了双机,还有需要入库的话单文件格式变了,多增加了几个字节,这个时候双机过来的订单大于等于2个,发现入库程序只能入成功其中一个账单,另外一个没入成功,分析了很久,我没有改入库程序,所以应该其他程序对它应该没有影响,话单内容格式也没变,只是话单文件格式变了,后来发现当话单文件格式变长时,其中一个函数的局部常量变量,在第一次循环时,还有值,第2次循环时,该变量变为空的了,导致第2次循环无法入库。我实在无法解释这种情况,没有人为地清除这个局部变量,这个局部变量也不是动态的。

我的解释:入库程序实现方式为:每隔3秒入库程序扫描需要入库的文件,然后遍历这些文件,一个文件一个文件入库。

当文件标识字段变长(由原来的2为改为4位)时:

有个局部变量常量,初始化内容为路径,

遍历第一个文件时,该变量值存在,所以入库成功;

遍历之后的文件时,由于文件长度变长,内存段被占用,导致取该变量值变成空,导致执行入库sqlldr命令时,其中的一个参数错误,无法入库成功。

所以当由2改为4为后,每次扫描都只会入第一个文件。

还有谁给解释下呢?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。