ストアド プロシージャを実行すると、SQL Server 2005 から次のメッセージが表示されることがあります。
原因: 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.callSpMoveTransaction (TransactionRejectDAO.java:631) で ... 6 つ以上
何か案は?
接続プーリング メカニズムが準備済みステートメントを閉じようとすると、次のようになります。
2009 年 11 月 9 日 9:32:55 AM 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 AM com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement クローズ 警告: SQLServerPreparedStatementID:186 ( ConnectionID:139 TransactionID:0x1A00000039000000): エラー (無視) PreparedHandle:0 を閉じています
ストアド プロシージャには、不要と思われるネストされたトランザクション T1 が含まれています。それが問題でしょうか?
ありがとう