Ciao,
dalla mia pagina aspx richiamo una procedura di importazione di un file di testo in un database.
La procedura d'importazione lavora all'interno di un transaction scope; subito prima di uscire dallo scope viene invocato il metodo scope.Complete(); se si scatena un'eccezione di qualsiasi tipo il complete non viene invocato e non si ha quindi persistenza dei dati, come è giusto che sia.
All'interno della stessa procedura però viene scritta anche una tabella contenente delle informazioni di log e queste scritture non devono essere sotto transazione perchè altrimenti in caso di rollback non verrebbe registrato niente in questa tabella e di conseguenza non si potrebbe capire il motivo per cui l'importazione non è andata a buon fine.
Io per realizzare questo utilizzo degli scope nidificati con TransactionScopeOption.Suppress perchè voglio che la tabella di log sia scritta sempre; mi sono accorto che la cosa funziona soltanto se utilizzo due connessioni distinte al db, una per l'importazione ed un'altra per latabella di log.
Mi piacerebbe utilizzare una sola connessione al db perchè alla fine la procedura è unica e non ha molto senso utilizzare due connessioni, ma dalle prove fatte non sembra possibile, qualcuno ha avuto esperienze simili ?
Paghe