这两天碰到的线上问题,网站报了oracle底层错误,ORA-0100:超出打开游标的最大数。排除DB设置的问题后,只能找代码原因。
代码上有循环(约5000次),其中的一个做查询功能的DbCommand最值得怀疑。它的写法是这样的:
这个写法是copy的已有代码,没有推敲过,主要是其他地方没有发生过类似错误,改成这样问题就解决了:
Command要Dispose,自己也知道,但鉴于已有代码没有报错就不推敲了,以前的代码没有放到一个较大的循环中,否则问题早就爆发了。
勿以恶小而为之,强壮的代码,不仅靠智商,更要靠态度。