Here is my scenario (in an abstract form):
Say I want to get a value in a database table, and then based on that value perform some other action. I do not want that value within the database to be able to be changed until after I have performed the follow up action. I have no problem implementing this process within a SqlTransaction in my data access layer, and getting the desired atomicity.
However when putting this inside a workflow, I cannot get the atomicity. Within a transaction scope activity I have a call to a web service, which in turn invokes a stored procedure to get the value in the database. Once the web service returns the value and focus returns to the workflow, and before I check out the value and perform a follow up action, I am still able to access the database table that was read and change values in the column being read. Therefore this is not providing me with any atomicity as a split second after reading the value, another thread could update its contents, and the follow up check I perform back in my workflow would not reflect the latest data.
Anyone know the best approach I should be using to implement this process within a workflow, and be able to have all the data accessed locked down until the process completes

Using transactions to access database within Worfklow
cfuess
I haven't tested it, but I think WCF provides support for flowing atomic transaction through web service message.
(WS-AtomicTransaction).
Serge