★现象0001
系统在料金计算(生成Billing)时,发现计算的金额有0.01円的差异。
●原因:
Oracle数据库中对于金额的定义是6位小数,一旦金额超过6位的时候,数据库就会发生自动四舍五入。
现象0002★现象0002
系统中有一本功能是Java调用PLSQL实装的,在Java中有数据更新,在PLSQL中也有数据的更新处理。
但在生产机上总是偶尔发生,java中更新的数据反应到数据库中了,但PLSQL中更新的数据没有。
●原因:
后来调查发现,在java中的使用的Connection与调用PLSQL时的Connection不一致造成的,但两者的Connection并不是总是不一致,而是偶尔发生不一致。
进一步调查怀疑是调用PLSQL时取Connection的方法不正确,而造成conection偶尔不一致的原因是生产机的Java代码里
调用PlSQL获取的connetion是在connetion连接池里取得的,大多数的时候同一个,但偶尔有不是同一个Connection的情况。
代码如下:
★现象0003
有一个online画面功能,画面在初始显示时所有项目一直都很正常,但偶尔有个别项目不显示的情况发生。
●原因:
后来深入的调查发现,画面的项目显示不正常的时候,当按下IE的F12,看debug模式的时候有javascript错误,
javascript错误的原因是在画面初始化的时候调用了一个下拉框的onchange事件,而onchange里调用的方法定义
在document.ready里,onchang的调用写在了Onload里造成的。
怀疑时,onload的onchange调用时,方法还没被完全加载。
怪的时,在我们认识里,document.ready是在 Onload的前面调用的,上网查了很多解释也是如此,但不知道为何
在我们的系统里确实是onload先执行, document.ready后执行的(这个我通过分别在onload和docment.ready里加了alert确认到了)。
网友评论