How is it possible that the transaction does not time-out? By default
the DTC transaction should be completed in 30 secs and it won't commit
if kept open for a longer time. Did you consider that?
For the locking problem I'd recommend splitting the work into a
sequence of 3 operations executed in separate transactions:
1. Get the job details from the database
2. Run the job
3. Update the job information in the database
Use RSB to execute them in sequence (by publishing a message at the
end of each step that will initiate the next step).
RG