Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2005 SQL Server 2005-无法回滚嵌套事务_Sql Server 2005_Hibernate_C3p0 - Fatal编程技术网

Sql server 2005 SQL Server 2005-无法回滚嵌套事务

Sql server 2005 SQL Server 2005-无法回滚嵌套事务,sql-server-2005,hibernate,c3p0,Sql Server 2005,Hibernate,C3p0,有时,在执行存储过程时,我会从SQL Server 2005获得以下信息: Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot roll back T1. No transaction or savepoint of that name was found. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Un

有时,在执行存储过程时,我会从SQL Server 2005获得以下信息:

Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot roll back T1. No transaction or savepoint of that name was found. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(Unknown Source) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(Unknown Source) at com.mchange.v2.c3p0.impl.NewProxyCallableStatement.executeUpdate(NewProxyCallableStatement.java:2160) at com.sm.persistence.dao.TransactionRejectDAO.callSpMoveTransaction(TransactionRejectDAO.java:631) ... 6 more 原因:com.microsoft.sqlserver.jdbc.SQLServerException:无法回滚T1。找不到该名称的事务或保存点。 位于com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(未知源) 位于com.microsoft.sqlserver.jdbc.TDSCommand.execute(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(未知源) 在com.mchange.v2.c3p0.impl.NewProxyCallableStatement.executeUpdate(NewProxyCallableStatement.java:2160) 位于com.sm.persistence.dao.TransactionRejectDAO.CallsPMoveTransation(TransactionRejectDAO.java:631) ... 还有6个 有什么想法吗

当连接池机制尝试关闭准备好的语句时:

Nov 9, 2009 9:32:55 AM com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement close WARNING: SQLServerPreparedStatementID:201 ( ConnectionID:139 TransactionID:0x1A00000039000000): Error (ignored) closing PreparedHandle:0 com.microsoft.sqlserver.jdbc.SQLServerException: The server failed to resume the transaction. Desc:390000001a. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source) at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(Unknown Source) at com.microsoft.sqlserver.jdbc.TDSParser.parse(Unknown Source) at com.microsoft.sqlserver.jdbc.TDSParser.parse(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$1PreparedHandleClose.doExecute(Unknown Source) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.closePreparedHandle(Unknown Source) at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.close(Unknown Source) at com.mchange.v1.db.sql.StatementUtils.attemptClose(StatementUtils.java:41) at com.mchange.v2.c3p0.stmt.GooGooStatementCache.synchronousDestroyStatement(GooGooStatementCache.java:413) at com.mchange.v2.c3p0.stmt.GooGooStatementCache.closeAll(GooGooStatementCache.java:351) at com.mchange.v2.c3p0.impl.NewPooledConnection.closeAllCachedStatements(NewPooledConnection.java:673) at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:543) at com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234) at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470) at com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:964) at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547) Nov 9, 2009 9:32:55 AM com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement close WARNING: SQLServerPreparedStatementID:186 ( ConnectionID:139 TransactionID:0x1A00000039000000): Error (ignored) closing PreparedHandle:0 2009年11月9日上午9:32:55 com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement关闭 警告:SQLServerPreparedStatementID:201(ConnectionID:139 TransactionID:0x1A00000039000000):关闭PreparedHandle时出错(已忽略):0 com.microsoft.sqlserver.jdbc.SQLServerException:服务器无法恢复事务。描述:390000001a。 位于com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(未知源) 位于com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(未知来源) 位于com.microsoft.sqlserver.jdbc.TDSParser.parse(未知源) 位于com.microsoft.sqlserver.jdbc.TDSParser.parse(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$1PreparedHandleClose.doExecute(未知源) 位于com.microsoft.sqlserver.jdbc.TDSCommand.execute(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.closePreparedHandle(未知源) 位于com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.close(未知源) 位于com.mchange.v1.db.sql.StatementUtils.attemptClose(StatementUtils.java:41) 位于com.mchange.v2.c3p0.stmt.GooGooStatementCache.synchronousDestroyStatement(GooGooStatementCache.java:413) 位于com.mchange.v2.c3p0.stmt.GooGooStatementCache.closeAll(GooGooStatementCache.java:351) 在com.mchange.v2.c3p0.impl.NewPooledConnection.closeAllCachedStatements(NewPooledConnection.java:673)上 在com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:543)上 在com.mchange.v2.c3p0.impl.NewPooledConnection.close(NewPooledConnection.java:234)上 位于com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.destroyResource(C3P0PooledConnectionPool.java:470) 位于com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask.run(BasicResourcePool.java:964) 位于com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547) 2009年11月9日上午9:32:55 com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement关闭 警告:SQLServerPreparedStatementID:186(ConnectionID:139 TransactionID:0x1A00000039000000):关闭PreparedHandle时出错(已忽略):0 存储过程包含一个嵌套事务T1,我认为这是不必要的。这可能是问题所在吗


感谢

第一个错误是由于您有一个命名的嵌套事务,您正试图回滚到该事务-允许命名嵌套事务(命名意味着键入类似“BEGIN transaction”的内容,在您的情况下为T1),但不支持回滚到命名的嵌套事务,并导致错误


有关详细信息,请参阅主题。

如果必须回滚嵌套事务,则可以使用“保存事务”。 看