Ejemplo n.º 1
0
        /// <summary>
        ///     Get KTM transaction from ambient managed transaction (<see cref="Transaction.Current" />)
        /// </summary>
        /// <remarks>
        ///     Currently this will require MS DTC service running. The created transaction should not be committed
        ///     or rolled back itself explicitly. Use the owning managed transaction to control it.
        ///     http://msdn.microsoft.com/en-us/library/cc303707.aspx
        /// </remarks>
        public static KtmTransactionHandle GetFromAmbientTransaction()
        {
            if (Transaction.Current == null)
            {
                throw new InvalidOperationException("Cannot create a KTM handle without Transaction.Current");
            }

            return(KtmTransactionHandle.GetFromManaged(Transaction.Current));
        }
Ejemplo n.º 2
0
 /// <summary>
 ///     Get KtmTransaction from managed transaction
 /// </summary>
 /// <param name="managedTransaction">
 ///     Owning managed transaction.
 /// </param>
 /// <returns>
 ///     <see cref="KtmTransaction" /> participating in <paramref name="managedTransaction" />
 /// </returns>
 /// <exception cref="ArgumentNullException">
 ///     <paramref name="managedTransaction" /> is <see langword="null"/>
 /// </exception>
 public static KtmTransaction Get(Transaction managedTransaction)
 {
     _log.Debug("Getting KTM transaction from managed");
     Check.DoRequireArgumentNotNull(managedTransaction, "managedTransaction");
     return(new KtmTransaction(KtmTransactionHandle.GetFromManaged(managedTransaction), managedTransaction));
 }