Can't start manual transaction mode because there are cloned connections
问题描述
今天在使用sql server 2000做jdbc数据库连接时,设置了手动的事务提交,结果报错。
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Can't start manual transaction mode because there are cloned connections
网上搜到的答案:
连接字符串中碰到的SelectMethod=cursor
用法如下:
作用:以利用服务器端的游标加快速度
使用情况:
1.执行多个Statements的操作的时候用
用法如下:
作用:以利用服务器端的游标加快速度
使用情况:
1.执行多个Statements的操作的时候用
2.需要手动使用事务的时候使用
用SQL Server驱动一次select很多数据最好在connection string中加上SelectMethod=Cursor,以利用服务器端游标加快速度,其实不只sqlserver,oracle的jdbc,只要使用PreparedStatement,驱动默认就使用游标,sqlserver则不然,必须使用SelectMethod=Cursor才打开游标。
解决方案:
修改jdbc连接的url为
jdbc:microsoft:sqlserver://10.105.1.104:1433;DataBaseName=test2;SelectMethod=cursor
参考 :http://blog.csdn.net/liuwei_blog/archive/2008/11/01/3197869.aspx