private void CreateTransaction(Activity atomicActivity)
 {
     TransactionalProperties properties = new TransactionalProperties();
     TransactionOptions options = new TransactionOptions();
     WorkflowTransactionOptions transactionOptions = TransactedContextFilter.GetTransactionOptions(atomicActivity);
     options.IsolationLevel = transactionOptions.IsolationLevel;
     if (options.IsolationLevel == IsolationLevel.Unspecified)
     {
         options.IsolationLevel = IsolationLevel.Serializable;
     }
     options.Timeout = transactionOptions.TimeoutDuration;
     CommittableTransaction transaction = new CommittableTransaction(options);
     properties.Transaction = transaction;
     WorkflowTrace.Runtime.TraceEvent(TraceEventType.Information, 0, string.Concat(new object[] { "Workflow Runtime: WorkflowExecutor: instanceId: ", this.InstanceIdString, " .Created enlistable transaction ", transaction.GetHashCode(), " with timeout ", options.Timeout, ", isolation ", options.IsolationLevel }));
     properties.LocalQueuingService = new WorkflowQueuingService(this.qService);
     atomicActivity.SetValue(TransactionalPropertiesProperty, properties);
     this.currentAtomicActivity = atomicActivity;
     this.atomicActivityEvent = new ManualResetEvent(false);
     WorkflowTrace.Runtime.TraceEvent(TraceEventType.Information, 0, "Workflow Runtime: WorkflowExecutor: instanceId: " + this.InstanceIdString + " .Set CurrentAtomicActivity to " + atomicActivity.Name);
 }