In my simplified/summarized/clipped code, I was thinking of doing something like this:
The secondary transaction looks quite similar:
private void UpdateSecondDB(){ try { BusinessLayer.TransactionBegin(MySecondaryBO.DataSourceKey, IsolationLevel.ReadCommitted); . . . do some processing on a bunch of BOs in the secondary data source . . . BusinessLayer.TransactionCommit(MySecondaryBO.DataSourceKey); } catch { BusinessLayer.TransactionRollback(MySecondaryBO.DataSourceKey); throw; }}
Since the second transaction is wrapped inside the first, then any errors from the second should 1) Rollback the second transaction; 2) Bubble up the error which is caught inside the first transaction; 3) Rollback the first transaction; 4) Run my unhandled exception routine.
Am I thinking clearly enough on this?Bill
Thanks!Bill