Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. COInteresting. I'm not convinced this is the actual problem, however. I actually do not see my TryCatch activity closing before the transaction abort. However, I took another look at what happens when the TransactionScope activity completes. It appears to queue a `CompleteTransactionWorkItem`. This indicates that something asynchronous is going on. However, this must also mean that at some point in time, the workflow thread and the transaction thread join to give me back the stacktrace I posted. I do not see this happening anywhere (I can't even find another thread dequeueing work items).
      singulars
    2. COActually what happens is that once the transaction fails the workflow terminates immediately (this is why the try/catch does not close). If you were able to invoke code in the workflow when the transaction is aborting you might inadvertantly do something with state created under the transaction that is failing. This violates the isolation semantic of the transaction so it is not allowed.
      singulars
    3. COOk, I understand. But it seems a little counter-intuitive to have a `TryCatch` that doesn't actually catch something I expected to be caught. So when using a `TransactionScope` inside a workflow, you have to carefully consider what you want the behavior to be when the transaction aborts. I should probably just go check out some more Endpoint.tv shows :)
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload