Mark the class with TransactionOption.RequiresNew since you need to jump out of the current transaction and start a new one to get your log entry persisted.
On Fri, 20 Sep 2002 11:54:19 +1200, Alex Henderson <[EMAIL PROTECTED]> wrote: >Is it possible to make a method that will not participate in a transaction. > > >Here's the scenario: > >I have a method, it's set to auto-complete, it calls a number of methods in >data access class(s) - these methods work across multiple SQL >Servers/databases... Upon failure an exception is generated. The method >catches the exception and the attempts to log the details of it into the >database with a timestamp etc. I then re-throw the failure to sygnify that >everythings gone pear-shaped and to cause the auto-completing method to >abort the transaction. > >Of course there's the catch.. (No laughing in the cheap seats..) My log >entry is never actually created, it's aborted with the rest of the >transaction :) > >I've tried marking the Log class with both: > >[Transaction(TransactionOption.NotSupported)] > >and > >[Transaction(TransactionOption.Disabled)] > >But this (unsurprisingly) made no difference - how can I shield the log >calls from the transaction taking place? > >Any pointers would be apreciated! - Alex > >You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or >subscribe to other DevelopMentor lists at http://discuss.develop.com. You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.