
连接Oracle,发现每断开一次并且重新连接,连接池里的Session就会多一个;一小时下来,居然有300多个连接。Debug一下断开连接的过程,发现断开连接失败,返回25000的错误:Invalid transaction state.There was a transaction in process on the connection specified by the argument ConnectionHandle. The transaction remains active.但是我没有执行任何语句。
最后发现是因为在连接Oracle数据库之后,用SQLPrepare准备statement;即使过程中什么都没有执行,但是Transaction算是开始了;disconnect的时候,尽管没有任何处理,还是要用SQLEndTran来结束事务。
感叹自己经验尚不足。
