异常信息 : java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.
分析 : 这个错误产生的原因一般是当你在一个SQL SERVER的JDBC连接上执行多个STATEMENTS的操作,或者是手动事务状态(AutoCommit=false) 并且使用 direct (SelectMethod=direct) 模式. Direct 模式是默认的模式.
解决办法 : 当你使用手动事务模式时,必须把SelectMethod 属性的值设置为 Cursor, 或者是确保在你的连接上只有一个STATEMENT操作。
解析:
如果你用MS的驱动时,如果你没有设置selectMethod=cursor(默认为direct),这时候,你同一个connection创建了两个statement,实际上第二个statement会隐式创建一个cloned connection,所以你在Enterprise manager里会看到多出的session
设置SelectMethod参数举例:
在连接SQLServer数据的URL中进行设置 : jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db;SelectMethod=Cursor
至于将SelectMethod设置程Direct和Cursor的区别,和设置程Cursor后可对那些参数设置进行进一步优化就靠大家自己取查资料了,这里就不在细叙了