本文整理汇总了C#中System.Transactions.PreparingEnlistment类的典型用法代码示例。如果您正苦于以下问题:C# PreparingEnlistment类的具体用法?C# PreparingEnlistment怎么用?C# PreparingEnlistment使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
PreparingEnlistment类属于System.Transactions命名空间,在下文中一共展示了PreparingEnlistment类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C#代码示例。
示例1: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
try
{
log.Debug("Prepare {0}, Messages {1}. Sending the message batch.", TransactionId, Messages.Count);
if (_onprepare != null) _onprepare(this);
preparingEnlistment.Prepared();
}
catch (Exception ex)
{
log.Error("Error preparing transaction {0} ({1} messages): {2}", TransactionId, Messages.Count, ex);
preparingEnlistment.ForceRollback(ex);
TransactionOpen = false;
if (_onrollback != null)
{
try
{
_onrollback(this);
}
catch (Exception e2)
{
log.Error("Error performing rollback after a failed prepare: {0}", e2);
}
}
}
}
开发者ID:BrettBailey,项目名称:nginn-messagebus,代码行数:26,代码来源:MessageBatchingRM.cs
示例2: PrepareAsyncResult
void IEnlistmentNotification.Prepare(PreparingEnlistment preparingEnlistment)
{
bool success = false;
try
{
IAsyncResult result = new PrepareAsyncResult(this, TransactionContext.handleEndPrepare, preparingEnlistment);
if (result.CompletedSynchronously)
{
PrepareAsyncResult.End(result);
preparingEnlistment.Prepared();
}
success = true;
}
//we need to swollow the TransactionException as it could because another party aborting it
catch (TransactionException)
{
}
finally
{
if (!success)
{
preparingEnlistment.ForceRollback();
}
}
}
开发者ID:iskiselev,项目名称:JSIL.NetFramework,代码行数:25,代码来源:TransactionContext.cs
示例3: Prepare
/// <summary>
/// Notifies an enlisted object that a transaction is being prepared for commitment.
/// </summary>
/// <param name="preparingEnlistment">A <see cref="T:System.Transactions.PreparingEnlistment"/> object used to send a response to the transaction manager.</param>
public void Prepare(PreparingEnlistment preparingEnlistment)
{
try
{
onTxComplete();
ctx.CreateFile(TransactionRecoveryInformationFileName, stream =>
{
var writer = new BinaryWriter(stream);
writer.Write(session.ResourceManagerId.ToString());
writer.Write(transaction.LocalIdentifier);
writer.Write(session.DatabaseName ?? "");
writer.Write(preparingEnlistment.RecoveryInformation());
});
session.PrepareTransaction(transaction.LocalIdentifier);
}
catch (Exception e)
{
logger.ErrorException("Could not prepare distributed transaction", e);
try
{
session.Rollback(transaction.LocalIdentifier);
DeleteFile();
}
catch (Exception e2)
{
logger.ErrorException("Could not roll back transaction after prepare failed", e2);
}
preparingEnlistment.ForceRollback(e);
return;
}
preparingEnlistment.Prepared();
}
开发者ID:925coder,项目名称:ravendb,代码行数:39,代码来源:RavenClientEnlistment.cs
示例4: Prepare
/// <summary>
/// Notifies an enlisted object that a transaction is being prepared for commitment.
/// </summary>
/// <param name="preparingEnlistment">A <see cref="T:System.Transactions.PreparingEnlistment"/> object used to send a response to the transaction manager.</param>
public void Prepare(PreparingEnlistment preparingEnlistment)
{
onTxComplete();
try
{
using (var machineStoreForApplication = IsolatedStorageFile.GetMachineStoreForDomain())
{
var name = TransactionRecoveryInformationFileName;
using (var file = machineStoreForApplication.CreateFile(name + ".temp"))
using(var writer = new BinaryWriter(file))
{
writer.Write(session.ResourceManagerId.ToString());
writer.Write(PromotableRavenClientEnlistment.GetLocalOrDistributedTransactionId(transaction).ToString());
writer.Write(session.DatabaseName ?? "");
writer.Write(preparingEnlistment.RecoveryInformation());
file.Flush(true);
}
machineStoreForApplication.MoveFile(name + ".temp", name);
}
}
catch (Exception e)
{
logger.ErrorException("Could not prepare distributed transaction", e);
preparingEnlistment.ForceRollback(e);
return;
}
preparingEnlistment.Prepared();
}
开发者ID:remcoros,项目名称:ravendb,代码行数:32,代码来源:RavenClientEnlistment.cs
示例5: Prepare
/// <summary>
/// Notifies an enlisted object that a transaction is being prepared for commitment.
/// </summary>
/// <param name="preparingEnlistment">A <see cref="T:System.Transactions.PreparingEnlistment"/> object used to send a response to the transaction manager.</param>
public void Prepare(PreparingEnlistment preparingEnlistment)
{
onTxComplete();
session.StoreRecoveryInformation(session.ResourceManagerId, PromotableRavenClientEnlistment.GetLocalOrDistributedTransactionId(transaction),
preparingEnlistment.RecoveryInformation());
preparingEnlistment.Prepared();
}
开发者ID:nzdunic,项目名称:ravendb,代码行数:11,代码来源:RavenClientEnlistment.cs
示例6: Prepare
public virtual void Prepare(PreparingEnlistment preparingEnlistment)
{
Trace.WriteIf(Tracing.Is.TraceVerbose, string.Empty);
if (null == preparingEnlistment)
{
return;
}
try
{
Operation.Info = Convert.ToBase64String(preparingEnlistment.RecoveryInformation());
if (ConfigureOperation() &&
Operation.Do())
{
Trace.WriteIf(Tracing.Is.TraceVerbose, "preparingEnlistment.Prepared()");
preparingEnlistment.Prepared();
return;
}
Trace.WriteIf(Tracing.Is.TraceVerbose, "preparingEnlistment.ForceRollback()");
preparingEnlistment.ForceRollback();
}
catch (Exception exception)
{
Trace.TraceError("{0}", exception);
preparingEnlistment.ForceRollback(exception);
}
}
开发者ID:KarlDirck,项目名称:cavity,代码行数:28,代码来源:DurableEnlistmentNotification.cs
示例7: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
if (_transaction.IsValid(false) == false)
preparingEnlistment.ForceRollback();
else
preparingEnlistment.Prepared();
}
开发者ID:AugustoAngeletti,项目名称:blockspaces,代码行数:7,代码来源:SQLiteEnlistment.cs
示例8: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
lock (_sharedLock)
{
if (PrepareCommitAction != null) PrepareCommitAction();
}
preparingEnlistment.Done();
}
开发者ID:PaulStovell,项目名称:bindable,代码行数:8,代码来源:TransactionStep.cs
示例9: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
DeveelDbException error;
if (!transaction.IsOpen(out error)) {
preparingEnlistment.ForceRollback(error);
} else {
preparingEnlistment.Prepared();
}
}
开发者ID:deveel,项目名称:deveeldb,代码行数:9,代码来源:DeveelDbEnlistment.cs
示例10: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
byte[] recoveryInformation = preparingEnlistment.RecoveryInformation();
var ravenJObject = new RavenJObject
{
{Constants.NotForReplication, true}
};
database.PutStatic("transactions/recoveryInformation/" + txId, null, new MemoryStream(recoveryInformation), ravenJObject);
preparingEnlistment.Prepared();
}
开发者ID:bstrausser,项目名称:ravendb,代码行数:10,代码来源:PendingTransactionRecovery.cs
示例11: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
_assertNotDisposed();
_logger.Debug("Preparing enlistment with id: {0}", Id);
var information = preparingEnlistment.RecoveryInformation();
_queueStorage.Global(actions =>
{
actions.RegisterRecoveryInformation(Id, information);
});
preparingEnlistment.Prepared();
_logger.Debug("Prepared enlistment with id: {0}", Id);
}
开发者ID:JackGilliam1,项目名称:LightningQueues,代码行数:12,代码来源:TransactionEnlistment.cs
示例12: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
try
{
transaction.Commit();
preparingEnlistment.Prepared();
}
catch (Exception ex)
{
preparingEnlistment.ForceRollback(ex);
}
}
开发者ID:Particular,项目名称:NServiceBus,代码行数:12,代码来源:InMemoryTransactionalSynchronizedStorageAdapter.cs
示例13: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
try
{
_transaction.IsValid();
}
catch(Exception e)
{
preparingEnlistment.ForceRollback(e);
return;
}
preparingEnlistment.Prepared();
}
开发者ID:ronnyMakhuddin,项目名称:SharperNLP,代码行数:13,代码来源:SQLiteEnlistment.cs
示例14: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
if (commit)
{
preparingEnlistment.Prepared();
}
else
{
preparingEnlistment.ForceRollback();
// Rollback is not called after 'Rollback' vote
this.WasRollback = true;
preparingEnlistment.Done();
}
}
开发者ID:CedricDumont,项目名称:NMemory.Next,代码行数:14,代码来源:FakeEnlistmentNotification.cs
示例15: Prepare
/// <summary>
/// Notifies an enlisted object that a transaction is being prepared for commitment.
/// </summary>
/// <param name="preparingEnlistment">A <see cref="T:System.Transactions.PreparingEnlistment"/> object used to send a response to the transaction manager.</param>
public void Prepare( PreparingEnlistment preparingEnlistment )
{
Status = TxfmStatus.InPrepare;
// TODO: Write to recovery log.
foreach( var operation in operations )
{
operation.Commit();
}
preparingEnlistment.Prepared();
Status = TxfmStatus.InTransaction;
}
开发者ID:dbremner,项目名称:TransactionalFileManager,代码行数:19,代码来源:TxfmEnlistment.cs
示例16: Prepare
/// <summary>
/// Notifies an enlisted object that a transaction is being prepared for commitment.
/// </summary>
/// <param name="preparingEnlistment">A <see cref="T:System.Transactions.PreparingEnlistment"/> object used to send a response to the transaction manager.</param>
public void Prepare(PreparingEnlistment preparingEnlistment)
{
onTxComplete();
try
{
session.StoreRecoveryInformation(session.ResourceManagerId, PromotableRavenClientEnlistment.GetLocalOrDistributedTransactionId(transaction),
preparingEnlistment.RecoveryInformation());
}
catch (Exception e)
{
logger.ErrorException("Could not prepare distributed transaction", e);
preparingEnlistment.ForceRollback(e);
return;
}
preparingEnlistment.Prepared();
}
开发者ID:JPT123,项目名称:ravendb,代码行数:20,代码来源:RavenClientEnlistment.cs
示例17: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
try
{
using (var ts = new TransactionScope(_transaction))
{
_unitOfWork.Commit();
ts.Complete();
}
preparingEnlistment.Prepared();
}
catch (Exception ex)
{
preparingEnlistment.ForceRollback(ex);
}
}
开发者ID:danielcor,项目名称:NES,代码行数:18,代码来源:EnlistmentNotification.cs
示例18: PrepareAsyncResult
void IEnlistmentNotification.Prepare(PreparingEnlistment preparingEnlistment)
{
bool flag = false;
try
{
IAsyncResult result = new PrepareAsyncResult(this, handleEndPrepare, preparingEnlistment);
if (result.CompletedSynchronously)
{
PrepareAsyncResult.End(result);
preparingEnlistment.Prepared();
}
flag = true;
}
catch (TransactionException)
{
}
finally
{
if (!flag)
{
preparingEnlistment.ForceRollback();
}
}
}
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:24,代码来源:TransactionContext.cs
示例19: Prepare
public void Prepare(PreparingEnlistment preparingEnlistment)
{
TestLog.WriteLine("{0}: Prepare", phase);
preparingEnlistment.Prepared();
}
开发者ID:dougrathbone,项目名称:mbunit-v3,代码行数:5,代码来源:RollbackAttributeTest.cs
示例20:
void IEnlistmentNotification.Prepare(PreparingEnlistment preparingEnlistment)
{
this.handle.OnPrepare(preparingEnlistment);
}
开发者ID:pritesh-mandowara-sp,项目名称:DecompliedDotNetLibraries,代码行数:4,代码来源:InstanceHandle.cs
注:本文中的System.Transactions.PreparingEnlistment类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论