public void RetryOnFailure()
		{
			using (var t = new CommittableTransaction())
			using (new TxScope(t, NullLogger.Instance))
			{
				t.EnlistVolatile(new ThrowingResource(true), EnlistmentOptions.EnlistDuringPrepareRequired);

				using (var c = GetConnection())
				using (var cmd = c.CreateCommand())
				{
					cmd.CommandText = "SELECT TOP 1 Val FROM Thing";
					var scalar = (double)cmd.ExecuteScalar();
					Console.WriteLine("got val {0}", scalar);
				}

				try
				{
					t.Commit();
					Assert.Fail("first commit should fail");
				}
				catch (ApplicationException)
				{
					Assert.That(t.TransactionInformation.Status, Is.EqualTo(TransactionStatus.Committed));
				}
			}
		}