[ 
https://issues.apache.org/jira/browse/IGNITE-3430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15849894#comment-15849894
 ] 

Pavel Tupitsyn edited comment on IGNITE-3430 at 2/2/17 1:26 PM:
----------------------------------------------------------------

Found the problem:
* {{TestTransactionScopeAllOperations}} does not call {{.Wait()}} on some async 
operations
* {{CacheTransactionManager}} calls {{prepare()}} when committing the 
transaction
* {{TransactionProxyImpl.prepare()}} is not a public API, so it does not wait 
for all transactional operations to complete (like {{commit()}} does)

Ticket created: IGNITE-4648

For now we can fix the test and say that we do not support incomplete async 
operations within {{TransactionScope}}.


was (Author: ptupitsyn):
Found the problem:
* {{TestTransactionScopeAllOperations}} does not call {{.Wait()}} on some async 
operations
* {{CacheTransactionManager}} calls {{prepare()}} when committing the 
transaction
* {{TransactionProxyImpl.prepare()}} is not a public API, so it does not wait 
for all transactional operations to complete (like {{commit()}} does)

> .NET: Run Ignite transactions via standard TransactionScope API
> ---------------------------------------------------------------
>
>                 Key: IGNITE-3430
>                 URL: https://issues.apache.org/jira/browse/IGNITE-3430
>             Project: Ignite
>          Issue Type: New Feature
>          Components: platforms
>    Affects Versions: 1.6
>            Reporter: Pavel Tupitsyn
>            Assignee: Pavel Tupitsyn
>              Labels: .net, roadmap
>             Fix For: 1.9
>
>         Attachments: threads_report.txt
>
>
> Automatically enlist Ignite operations in current transaction scope when 
> applicable (when cache is transactional).
> https://msdn.microsoft.com/en-us/library/system.transactions.transactionscope(v=vs.110).aspx
> https://msdn.microsoft.com/en-us/library/ee818754(v=vs.110).aspx
> This boils down to implementing {{IEnlistmentNotification}} and calling 
> {{Transaction.Current.Enlist}} when doing transactional operations.
> Later we may want to implement {{ISinglePhaseNotification}} which is an 
> optimization.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to