请帮我看看,这个驱动怎么报这种错???

java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Can't start manual transaction mode because there are cloned connections.

这就是报的错,我用的是连接池,编程实现的,用了很久一直没问题(ORACLE),现在用在了SQL2000上,这个驱动也是朋友给的,他说好用。但是,只要我使用事务,不管是在JSP直接来还是在底层的JAVA类中实现,都会报这个错,从字面上看是什么连接是CLONE了的,不能用事务,我什么时候做了这个啊??他说的是引用的意思吗?当然,用了连接池当然就用了引用,但这个怎么会影响事务???这个是驱动的限制还是什么???还有一个现象,当我把事务直接写在JSP上面,(报错会显示在网页上),如果一直刷新就会看见报错一会有,一会又没有,正常,怎么会这样???


问了那么多,请BANG和大家详细回答,帮我把这个问题弄清楚!

可能是你用的sql server的驱动自己带有connection pool的实现, 有2个pool的关系??

我猜的, 不知道有没有帮助.

你用的什么jdbc,那个版本的?

我用的是JDK1.4 那么JDBC应该是最高的了 JDBC2.0???

JDBC的驱动是由数据库厂商或者第三方开发的。
和jdk版本无关!

我也觉得与它无关。
怎么就没有人给一个肯定一点的,权威一点的回答啊???我急死了,BANG,请把我这个问题也回答一下吧,谢谢。

怎么等不到回答???

在JDBC URL里加参数SelectMethod=CUrsor

应该可以搞定了。
以前碰到过。

多谢楼上的回答,我会试一试的,不过你能不能说得详细一点?这到底是为什么会产生这样得效果,为什么加上上面这句就OK了???

很简单,你使用的是微软网站下载的SQLServer 2000 Driver for JDBC驱动程序,你下载的这个驱动不支持clone!!!而你在Java程序或是Java服务器中使用这个驱动自建数据连接(如Tomcat)时,都会报错的:-(