Skip to content

Commit 5c04b3e

Browse files
authored
Merge pull request #1346 from DanielFerrerCC/fixopennedtranswhenthrow
Added rollback transaction before an exception is thrown
2 parents d1008e1 + 0d208b6 commit 5c04b3e

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

samples/applications/aspnet-session-state/aspstate_sql2016_with_retry.sql

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,9 @@ BEGIN
204204
ELSE
205205
BEGIN
206206
PRINT 'Suffered an error for which Retry is inappropriate.';
207+
IF XACT_STATE() = -1
208+
ROLLBACK TRANSACTION;
209+
207210
THROW;
208211
END
209212
END CATCH
@@ -287,6 +290,9 @@ BEGIN
287290
ELSE
288291
BEGIN
289292
PRINT 'Suffered an error for which Retry is inappropriate.';
293+
IF XACT_STATE() = -1
294+
ROLLBACK TRANSACTION;
295+
290296
THROW;
291297
END
292298
END CATCH
@@ -348,6 +354,9 @@ BEGIN
348354
ELSE
349355
BEGIN
350356
PRINT 'Suffered an error for which Retry is inappropriate.';
357+
IF XACT_STATE() = -1
358+
ROLLBACK TRANSACTION;
359+
351360
THROW;
352361
END
353362
END CATCH
@@ -410,6 +419,9 @@ BEGIN
410419
ELSE
411420
BEGIN
412421
PRINT 'Suffered an error for which Retry is inappropriate.';
422+
IF XACT_STATE() = -1
423+
ROLLBACK TRANSACTION;
424+
413425
THROW;
414426
END
415427
END CATCH
@@ -471,6 +483,9 @@ BEGIN
471483
ELSE
472484
BEGIN
473485
PRINT 'Suffered an error for which Retry is inappropriate.';
486+
IF XACT_STATE() = -1
487+
ROLLBACK TRANSACTION;
488+
474489
THROW;
475490
END
476491
END CATCH
@@ -772,6 +787,9 @@ AS
772787
ELSE
773788
BEGIN
774789
PRINT 'Suffered an error for which Retry is inappropriate.';
790+
IF XACT_STATE() = -1
791+
ROLLBACK TRANSACTION;
792+
775793
THROW;
776794
END
777795
END CATCH
@@ -838,6 +856,9 @@ AS
838856
ELSE
839857
BEGIN
840858
PRINT 'Suffered an error for which Retry is inappropriate.';
859+
IF XACT_STATE() = -1
860+
ROLLBACK TRANSACTION;
861+
841862
THROW;
842863
END
843864
END CATCH
@@ -916,6 +937,9 @@ AS
916937
ELSE
917938
BEGIN
918939
PRINT 'Suffered an error for which Retry is inappropriate.';
940+
IF XACT_STATE() = -1
941+
ROLLBACK TRANSACTION;
942+
919943
THROW;
920944
END
921945
END CATCH
@@ -996,6 +1020,9 @@ AS
9961020
ELSE
9971021
BEGIN
9981022
PRINT 'Suffered an error for which Retry is inappropriate.';
1023+
IF XACT_STATE() = -1
1024+
ROLLBACK TRANSACTION;
1025+
9991026
THROW;
10001027
END
10011028
END CATCH
@@ -1080,6 +1107,9 @@ AS
10801107
ELSE
10811108
BEGIN
10821109
PRINT 'Suffered an error for which Retry is inappropriate.';
1110+
IF XACT_STATE() = -1
1111+
ROLLBACK TRANSACTION;
1112+
10831113
THROW;
10841114
END
10851115
END CATCH
@@ -1149,6 +1179,9 @@ AS
11491179
ELSE
11501180
BEGIN
11511181
PRINT 'Suffered an error for which Retry is inappropriate.';
1182+
IF XACT_STATE() = -1
1183+
ROLLBACK TRANSACTION;
1184+
11521185
THROW;
11531186
END
11541187
END CATCH
@@ -1214,6 +1247,9 @@ AS
12141247
ELSE
12151248
BEGIN
12161249
PRINT 'Suffered an error for which Retry is inappropriate.';
1250+
IF XACT_STATE() = -1
1251+
ROLLBACK TRANSACTION;
1252+
12171253
THROW;
12181254
END
12191255
END CATCH
@@ -1255,6 +1291,9 @@ DECLARE @retry INT = 10;
12551291
ELSE
12561292
BEGIN
12571293
PRINT 'Suffered an error for which Retry is inappropriate.';
1294+
IF XACT_STATE() = -1
1295+
ROLLBACK TRANSACTION;
1296+
12581297
THROW;
12591298
END
12601299
END CATCH
@@ -1296,6 +1335,9 @@ DECLARE @retry INT = 10;
12961335
ELSE
12971336
BEGIN
12981337
PRINT 'Suffered an error for which Retry is inappropriate.';
1338+
IF XACT_STATE() = -1
1339+
ROLLBACK TRANSACTION;
1340+
12991341
THROW;
13001342
END
13011343
END CATCH
@@ -1335,6 +1377,9 @@ DECLARE @retry INT = 10;
13351377
ELSE
13361378
BEGIN
13371379
PRINT 'Suffered an error for which Retry is inappropriate.';
1380+
IF XACT_STATE() = -1
1381+
ROLLBACK TRANSACTION;
1382+
13381383
THROW;
13391384
END
13401385
END CATCH
@@ -1382,6 +1427,9 @@ DECLARE @retry INT = 10;
13821427
ELSE
13831428
BEGIN
13841429
PRINT 'Suffered an error for which Retry is inappropriate.';
1430+
IF XACT_STATE() = -1
1431+
ROLLBACK TRANSACTION;
1432+
13851433
THROW;
13861434
END
13871435
END CATCH

0 commit comments

Comments
 (0)