Share via


Transient Fault Handling Application Block (Topaz) updates

Oct 9 Update

Topaz now supports the new Task-based async pattern using TPL.


Aug 29 Update

We removed the hard dependency on the Windows Azure Shared Caching core assembly (Microsoft.ApplicationServer.Caching.Core, Version=101.0.0.0).  This was causing build/deployment issues for users who wanted to use the Windows Azure Caching Preview (Microsoft.ApplicationServer.Caching.Core, Version=1.0.0.0) even when not using Topaz to handle transient faults accessing the Caching service, as the preview is not yet supported by Topaz. The updated version is v..5.0.1208.2 and it's availabe via NuGet.


Today we shipped via NuGet two service updates to the Transient Fault Handling Application Block targeting the Windows Azure SDK for .NET 1.6 Nov 2011 and 1.7 June 2012 respectively. The updates include fixes to the Service Bus and the Azure Storage transient error detection strategies.

Please read the Release Notes and perform the update.

Comments

  • Anonymous
    September 12, 2012
    Is there a way to use Topaz together with the Data Access Application Block ?

  • Anonymous
    September 17, 2012
    @Tora, You can use Topaz with DAAB just as you would with any arbitrary code that could be retried. So, you can wrap calls to DAAB with Topaz using the SqlAzureErrorDetection strategy. However, there's no DAAB-specific extensions to Topaz that could simplify the usage and make retries behind the scenes of DAAB.

  • Anonymous
    October 10, 2012
    I am using this architecture with ADO.NET Entity Framework and have read several posts on how to accomplish this, but I still have questions on exactly when I need to wrap my calls in the retry block.  Can you please answer the following question:

  1. If I have the code below, which statements should be wrapped within the retry block?  The Linq query, or the 1st call using the result set of the Linq query, or both?  I am concerned about when it actually goes to the DB (Lazy Loading) var ResultSet = from persons in Conn.Persons where persons.Gender == “Male” select persons; int iPersonsCount = ResultSet.Count();
  2. Do all calls using the result set need to be wrapped with retry blocks?  Again this is a concern due to Lazy Loading, and when it goes to the DB.
  3. If I am using ADO.NET entity framework, should I also over load the “OnContextCreated()” method, to wrap the connection object in a retry?
  • Anonymous
    November 05, 2012
    Any chance to update topaz for 'Service Bus for Windows Server' ? I think it requires only a rebuild because of the same codebase with 'Azure Service Bus', right?